Programming Language Concept History
General: Main page Overview Concept History Alphabetical List
Timelines: Timeline #1 Timeline #2 Timeline #3
Languages: C/C++ Java Visual Studio
Abstract data types Simula 67 Assignment operator overloading C++ BNF (Backus-Naur Form) used to describe Algol 60's syntax Block nesting with scope Algol 60 Class Simula 67 Closure Lisp Comments Cobol Compound statements (group statements into one) Algol 58 Continuations ?? (1972) Encapsulation Exception handling PL/I Explicit typing Algol 58 Garbage collection Lisp Heap allocation Lisp Higher order Algol 60 or maybe Lisp? Inheritance Simula 67 Lazy evaluation ISWIM (giving Haskell) List comprehension KRC (giving Haskell) Macros Cobol Modules Modula-2 Monads Haskell Operator overloading Algol 68 Orthogonality Algol 68 Pass by name Algol 60 Pass by value Fortran Pass by value/result Algol W Pattern matching Hope (giving ML) Pointer datatype PL/I References Algol 68 Separate compilation Fortran II (interest: hardware failures were very frequent => length of a program could not exceed 300/400 lines) Stack allocation Algol 58 Stack dynamic variables Algol 60 Static allocation Fortran Structures (records) Cobol Type classes Haskell Type inference ML User-defined data types Algol 68 Using C as portable assembler C++ (Cfront) Variable declaration anywhere in a block Algol 68 Vertical layout (Indentation to show block structure) ISWIM (giving Haskell) multiple selection (`case' statement) Algol W Note: This page is modified from Programming Language Concept History.