This document discusses the history and evolution of many programming languages from the 1950s to the present. It provides brief descriptions of important early languages like FORTRAN, ALGOL, LISP, SIMULA and COBOL. It then covers influential object-oriented, functional, logic and concurrent languages from the 1970s onward like Smalltalk, Prolog, Miranda, Erlang and Go. The document traces how each new language built upon ideas and concepts from earlier languages to advance the field of programming language design.
37. 19601960
19651965
19701970
19751975
19801980
19851985
19901990
19951995
20002000
20052005
20102010
Algol (1958)
ETH Zürich committee
- Algol 58, Algol 60, Algol 68, Algol W
- Context-free Grammars (Backus-Naur Form/BNF)
- "ALGOL 68 was the first (and possibly one of the last)
major language for which a full formal definition was made
before it was implemented”
- “ALGOL 68 has been criticized, most prominently by
some members of its design committee such
as Hoare and Dijkstra, for abandoning the simplicity
of ALGOL 60”
- "Steve Bourne, who was on the Algol 68 revision
committee, took some of its ideas to his Bourne shell (and
thereby, to descendant shells such as Bash) and
to C (and thereby to descendants such as C++)."
Algol (1958)
ETH Zürich committee
- Algol 58, Algol 60, Algol 68, Algol W
- Context-free Grammars (Backus-Naur Form/BNF)
- "ALGOL 68 was the first (and possibly one of the last)
major language for which a full formal definition was made
before it was implemented”
- “ALGOL 68 has been criticized, most prominently by
some members of its design committee such
as Hoare and Dijkstra, for abandoning the simplicity
of ALGOL 60”
- "Steve Bourne, who was on the Algol 68 revision
committee, took some of its ideas to his Bourne shell (and
thereby, to descendant shells such as Bash) and
to C (and thereby to descendants such as C++)."
40. 19601960
19651965
19701970
19751975
19801980
19851985
19901990
19951995
20002000
20052005
20102010
ADA (1966)
MIL-STD
- strong typing, generics
- modularity mechanisms (packages)
- run-time checking
- access to unallocated memory, buffer overflow errors,
range violations, off-by-one errors, array access
errors, and other detectable bugs
- parallel processing (tasks, synchronous
message passing, protected objects, and
- nondeterministic select statements)
- exception handling
- widely used in critical systems, where any anomaly might
lead to very serious consequences, e.g., accidental death,
injury or severe financial loss. Examples of systems where
Ada is used include avionics,ATC, railways, banking,
military and space technology
ADA (1966)
MIL-STD
- strong typing, generics
- modularity mechanisms (packages)
- run-time checking
- access to unallocated memory, buffer overflow errors,
range violations, off-by-one errors, array access
errors, and other detectable bugs
- parallel processing (tasks, synchronous
message passing, protected objects, and
- nondeterministic select statements)
- exception handling
- widely used in critical systems, where any anomaly might
lead to very serious consequences, e.g., accidental death,
injury or severe financial loss. Examples of systems where
Ada is used include avionics,ATC, railways, banking,
military and space technology
59. • APL (1964) introduced: array programming, influenced:
functional programming
• ALGOL (1958) refined both structured procedural
programming and the discipline of language
specification.
• Simula (1967) first language designed to support
object-oriented programming; Smalltalk (1972)
followed with the first "purely" object-oriented language.
• C (1969 - 1973) popular system programming
language
• Prolog (1972), first logic programming language.
• ML (1978) built a polymorphic type system on top of
Lisp, pioneering statically typed functional
programming languages.
109. Chris Lattner
Director of the Developer Tools department at Apple and the creator of Swift
Chris Lattner
Director of the Developer Tools department at Apple and the creator of Swift