Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 852425
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T07:35:34+00:00 2026-05-15T07:35:34+00:00

Let us research and trace back the origins of language constructs. For example: Constructs

  • 0

Let us research and trace back the origins of language constructs.

For example:

Constructs Introduced from LISP

  • If-Else Block :”The ubiquitous if-then-else structure, now taken for granted as an essential element of any programming language, was invented by McCarthy for use in Lisp, where it saw its first appearance in a more general form (the cond structure). It was inherited by Algol, which popularized it. ” – WikiPedia

  • Function Type : Functions as first class citizens.

  • Garbage Collection

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T07:35:34+00:00Added an answer on May 15, 2026 at 7:35 am

    Here is a comprehensive history of major programming language constructs that I’ve been able to identify so far. I’ve undoubtedly missed something, but I’m sure the SO community will help identify these omissions.

    Plankalkül (1943-45) – Developed by Konrad Zuse, this was the first high-level, non-von Neumann programming language, according to Wikipedia and Communications of the ACM paper “The “Plankalkül” of Konrad Zuse: A Forerunner of Today’s Programming Languages” by F.L. Bauer and H. Wossner. The language was originally developed for the mechanical Zuse Z1 computer, but a compiler implementation by a team at the Free University of Berlin was not developed until 2000. The language introduced the following:

    • “Assignment statements, subroutines, conditional statements, iteration, floating point arithmetic, arrays, hierarchical record structures, assertions, and exception handling” (Wikipedia:Plankalkül).

    Fortran:

    • Do-loop (really the equivalent of the modern for-loop in languages like C, C++, etc) (Wikipedia: For_loop)
    • Three-way arithmetic IF statement (Backus)
    • computed GOTO (predecessor of switch statement in Algol 58 and Algol 60) — from (Backus), (Wikipedia: Fortran), and (Wikipedia: ALGOL 58)

    IPL (Information Processing Language) – recursion (later included in LISP) — (Newell and Simon)

    LISP – garbage collection, lambda expressions, and dynamic typing — (McCarthy, 1960), (McCarthy, 1978), (Wikipedia: Garbage collection), and (Wikipedia: LISP)

    ALGOL 58 – introduced code blocks (but only for control flow, not variable scope) (Backus, 1959)

    ALGOL 60 – added lexical scope to code blocks, nested function definitions with lexical scope (Backus et al 1963)

    ALGOL 68 – operator overloading (A. van Wijngaarden et al)

    Simula – objects, classes, subclasses, virtual methods, coroutines (Dahl et al)

    ML – parametric polymorphism (Cardelli and Wegner)

    ISBL (Information Systems Base Language) – relational algebra (was introduced earlier here than in SQL) — (Hall et al), (Wikipedia: Relational algebra)

    Scheme – first fully-supported closures (Sussman and Steele, 1975), (Sussman and Steele, 1998)

    Oddly, for four of the most commonly used modern programming languages, C, C++, Java, and C#, I was unable to identify any verifiable, fundamentally new programming language constructs. The templates in C++ are an adhoc version of polymorphism introduced in ML. The closest thing to a new language feature in Java was inclusion of support for threads. Mostly, all four languages are a combination of desirable features and concepts invented elsewhere.

    Other notes: Although Prolog was one of the first logic programming languages, I could not identify any significant features not introduced previously in other languages.

    Although there are some Wikipedia references, most of the features listed above have been attributed to solid sources that are referenced below. Where I’ve delved down to find authoritative references, the Wikipedia-based details have held up well.

    The ACM paper I referenced for Plankalkül confirms most of its features. Konrad Zuse was a far-sighted genius.

    REFERENCES

    F.L. Bauer and H. Wössner (1972). The “Plankalkül” of Konrad Zuse: A
    Forerunner of Today’s Programming Languages
    . Communications
    of the ACM, 15(7):678–685.

    Raúl Rojas et al. (2000). “Plankalkül: The First High-Level Programming Language and its Implementation”. Institut für Informatik, Freie Universität Berlin, Technical Report B-3/2000.

    J. W. Backus (1956). The Fortran Automatic Coding System for the IBM 704 EDPM. International Business Machines Corporation.

    Allen Newell and Herbert A. Simon (1956). The logic theory machine: a complex information processing system. IRE Transactions on Information Theory IT-2, no. 3: 61-79.

    John McCarthy (1960). Recursive functions of symbolic expressions and their computation by machine, Part I, Communications of the ACM, v.3 n.4, p.184-195, April.

    John McCarthy (1978). History of LISP. In Richard L. Wexelblat, editor, History of Programming Languages: Proceedings of the ACM SIGPLAN Conference, pages 173-197. Academic Press, June 1-3.

    J.W. Backus (1959). “The Syntax and Semantics of the Proposed International Algebraic Language of Zürich ACM-GAMM Conference”. Proceedings of the International Conference on Information Processing. UNESCO. pp. 125–132.

    J.W. Backus, F. L. Bauer, J. Green, C. Katz, J. McCarthy, P. Naur, A .J. Perlis, H. Rutishauser, K. Samelson, B. Vauquois, J. H. Wegstein, A. van Wijngaarden, M. Woodger; edited by Peter Naur (1963). Revised Report on the Algorithmic Language ALGOL 60. Communications of the ACM, Volume 6, Number 1 (January), pages 1-17.

    A. van Wijngaarden, A. (Editor), Mailloux, B. J., Peck, J. E. L., Koster, C. H. A. (1969). “Report on the algorithmic language ALGOL 68”, Section 10.2.2. Numer. Math. 14, 79–218.

    Ole-Johan Dahl, Bjørm Myhrhaug, and Kristen Nygaard (1970). SIMULA, Common Base Language. (2nd. Edition) Oslo, Norwegian Computing Center.

    Luca Cardelli and Peter Wegner (1985). On Understanding Types, Data Abstraction, and Polymorphism. Computing Surveys, Vol 17 n. 4, pp 471-522, December.

    Patrick A.V. Hall, Peter Hitchcock, Stephen Todd (1975). “An algebra of relations for machine computation”. Conference record of the second ACM Symposium on the Principles of Programming Languages, Palo Alto, California: ACM, pp. 225–232, January.

    Gerald Jay Sussman and Guy L. Steele, Jr (1975). Scheme: An Interpreter for the Extended Lambda Calculus. AI Memo 349, December.

    Gerald Jay Sussman and Guy L. Steele, Jr (1998). “Scheme:
    A Interpreter for Extended Lambda Calculus”
    . Higher-Order and Symbolic Computation 11 (4): 399–404, December, Kluwer Academic Publishers, Boston.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.