56 Chapter 2 Evolution of the Major Programming Languages
a member of the Zurich group. It was Naur who created and published the
ALGOL Bulletin. He spent a good deal of time studying Backus’s paper that
introduced BNF and decided that BNF should be used to describe formally
the results of the 1960 meeting. After making a few relatively minor changes to
BNF, he wrote a description of the new proposed language in BNF and handed
it out to the members of the 1960 group at the beginning of the meeting.
2.5.6 ALGOL 60 Overview
Although the 1960 meeting lasted only six days, the modifications made to
ALGOL 58 were dramatic. Among the most important new developments
were the following:
- The concept of block structure was introduced. This allowed the program-
mer to localize parts of programs by introducing new data environments,
or scopes. - Two different means of passing parameters to subprograms were allowed:
pass by value and pass by name. - Procedures were allowed to be recursive. The ALGOL 58 description was
unclear on this issue. Note that although this recursion was new for the
imperative languages, LISP had already provided recursive functions in
1959. - Stack-dynamic arrays were allowed. A stack-dynamic array is one for which
the subscript range or ranges are specified by variables, so that the size of
the array is set at the time storage is allocated to the array, which happens
when the declaration is reached during execution. Stack-dynamic arrays
are described in detail in Chapter 6.
Several features that might have had a dramatic impact on the success or
failure of the language were proposed and rejected. Most important among
these were input and output statements with formatting, which were omitted
because they were thought to be machine-dependent.
The ALGOL 60 report was published in May 1960 (Naur, 1960). A num-
ber of ambiguities still remained in the language description, and a third meet-
ing was scheduled for April 1962 in Rome to address the problems. At this
meeting the group dealt only with problems; no additions to the language were
allowed. The results of this meeting were published under the title “Revised
Report on the Algorithmic Language ALGOL 60” (Backus et al., 1963).
2.5.7 Evaluation
In some ways, ALGOL 60 was a great success; in other ways, it was a dismal
failure. It succeeded in becoming, almost immediately, the only acceptable
formal means of communicating algorithms in computing literature, and it
remained that for more than 20 years. Every imperative programming language
designed since 1960 owes something to ALGOL 60. In fact, most are direct