54 Chapter 2 Evolution of the Major Programming Languages
The Zurich meeting succeeded in producing a language that met the stated
goals, but the design process required innumerable compromises, both among
individuals and between the two sides of the Atlantic. In some cases, the com-
promises were not so much over great issues as they were over spheres of
influence. The question of whether to use a comma (the European method) or
a period (the American method) for a decimal point is one example.
2.5.3 ALGOL 58 Overview
The language designed at the Zurich meeting was named the International
Algorithmic Language (IAL). It was suggested during the design that the lan-
guage be named ALGOL, for ALGOrithmic Language, but the name was
rejected because it did not reflect the international scope of the committee.
During the following year, however, the name was changed to ALGOL, and
the language subsequently became known as ALGOL 58.
In many ways, ALGOL 58 was a descendant of Fortran, which is quite
natural. It generalized many of Fortran’s features and added several new con-
structs and concepts. Some of the generalizations had to do with the goal of
not tying the language to any particular machine, and others were attempts to
make the language more flexible and powerful. A rare combination of simplicity
and elegance emerged from the effort.
ALGOL 58 formalized the concept of data type, although only variables
that were not floating-point required explicit declaration. It added the idea of
compound statements, which most subsequent languages incorporated. Some
features of Fortran that were generalized were the following: Identifiers were
allowed to have any length, as opposed to Fortran I’s restriction to six or fewer
characters; any number of array dimensions was allowed, unlike Fortran I’s
limitation to no more than three; the lower bound of arrays could be specified
by the programmer, whereas in Fortran it was implicitly 1; nested selection
statements were allowed, which was not the case in Fortran I.
ALGOL 58 acquired the assignment operator in a rather unusual way.
Zuse used the form
expression => variable
for the assignment statement in Plankalkül. Although Plankalkül had not yet
been published, some of the European members of the ALGOL 58 committee
were familiar with the language. The committee dabbled with the Plankalkül
assignment form but, because of arguments about character set limitations,^4 the
greater-than symbol was changed to a colon. Then, largely at the insistence of
the Americans, the whole statement was turned around to the Fortran form
variable := expression
The Europeans preferred the opposite form, but that would be the reverse of
Fortran.
- The card punches of that time did not include the greater-than symbol.