1
Lecture Notes on Programming Languages
Lecture 02: Chronology of Programming Languages
This lecture contains:
Zuses Plankalkul
Machine code
Fortran
LISP
ALGOL
COBOL
Basic
PL1
SBOBOL
Simula 67
Prolog
Ada
Small Talk
C++
Java
JavaScript and PHP
C#
Elvis C. Foster
Lecture 2: Chronology of Programming Languages
2.1 Introduction
In your introduction to computer science you were no doubt introduced to Konrad Zuse, the first person to
propose the binary system. What you perhaps did not know is that as part of his PhD project, Zuse also
proposed a programming language that he called Plankalkul. In that project, he also proposed several
algorithms for what we now know as Data Structures. His thesis was not published until 1972. In hindsight,
he clearly was ahead of his peers.
Since Zuses Plankalkul, there has been hundreds of programming languages. Figure 2.1 provides a
summarized list of some of the major programming languages. Figure 2.2 shows the generations that
programming languages have been through.
Figure 2.1: Summary of the History of Programming Languages
Period
1950s
1960s
1970s
1980s
1990s
Languages Developed
FORTRAN, LISP
Simula, COBOL, RPG, ALGOL, PL1
Ada, C, Pascal, Prolog, Small Talk
C++, ML, Eiffel, Visual languages
Java, Hypermedia languages, Visual languages, Ada 95
Figure 2.2: Generations of Programming Languages
Generation
Machine Code
Languages Developed
Each computer (model) has an instruction set of binary instructions. Computer
programs were first written in binary code.
Assembly Language Each computer (model) has an assembly language based on its instruction set. This is
a slightly higher level than machine code. Assembly language coding was the first
replacement of machine code.
High-level languages The first set of HLLs included procedural languages and rule-based languages. Then
(HLLs)
came the introduction of OOPLs and hybrid languages.
Fourth Generation
These languages came with the proliferation of relational database management
Languages (4GLs)
systems (RDBMSs), computer-aided software engineering (CASE) tools, and rapid
application development (RAD) tools.
Fifth General Systems This generation includes integrated CASE (ICASE) tools, multi-agent applications, a
(5GS)
nd
intelligent systems.
Lecture 2: Chronology of Programming Languages
2.2 Machine Code
See [Sebesta 2012]
2.3 Fortran
See [Sebesta 2012]
2.4 LISP
See [Sebesta 2012]
2.5 ALGOL
See [Sebesta 2012]
2.6 COBOL
See [Sebesta 2012]
2.7 Basic
See [Sebesta 2012]
2.8 PL1
See [Sebesta 2012]
2.9 SNOBOL
See [Sebesta 2012]
2.10 Simula 67
See [Sebesta 2012]
2.11 Prolog
See [Sebesta 2012]
2.12 Ada
See [Sebesta 2012]
2.13 Small Talk
See [Sebesta 2012]
2.14 C++
See [Sebesta 2012]
2.15 Java, JavaScript, PHP, and C#
See [Sebesta 2012]
2.16 Recommended Readings
[Sebesta 2012] Sebesta, Robert W. 2012. Concepts of Programming Languages 10th Edition.
Colorado Springs, Colorado: Pearson. See chapter 2.
[Webber 2003] Webber, Adam B. 2003. Modern Programming Languages: A Practical
Introduction. Wilsonville, Oregon: Franklin, Beedle & Associates. See chapter 24.