Programming Languages
The ALGOL programming language was developed in 1958 as a program for the display of algorithms. It was elegant and included several design features that have since become staple features of advanced programming languages. ALGOL programs and procedures employ a head-body format, and procedures can be nested within other procedures. ALGOL was the first programming language to make use of start-end delimiters for processes within procedures, a feature now common in advanced object-oriented programming languages. The language allowed recursion and iterative procedures, dynamic array structures, and user-defined data types. Despite its elegance and advanced features, however, ALGOL never became widely used and is now one of the oldest and least used of programming languages.
The name ALGOL is a contraction from ALGOrithmic Language. It was developed by a committee of American and European computer scientists at ETH, in Zurich, Switzerland, as a language for the display of algorithms. The detailed specifications for the language were first reported in 1960, as ALGOL-58, and there have been several revisions and variations of the language since its inception.
These include the updated ALGOL-60, ALGOL-N, ALGOL-68, ALGOL-W and Burroughs Extended ALGOL. The language was developed from the FORTRAN language, which appeared in 1956. Both ALGOL and FORTRAN strongly influenced the development of later languages such as BASIC, PL/1 and PL/C, Euler and Pascal. Many ALGOL programmers agree that the development of ALGOL-68 made the language much more complex and less elegant than the previous version ALGOL-60, ultimately leading to its fall into disfavor with computer users. It is now one of the oldest and least used of all programming languages.
The syntax of ALGOL is rather logical, using natural-language reserved keywords such as comment, begin and end and the “:” (colon) character to identify standard arithmetical operators. The ALGOL program format utilizes a two-part “block” structure in its main loop that has since become a familiar feature of most modern computer languages such as C/C++, Java and many others. The first block, called the “head,” consists of a series of type declarations similar to those used in FORTRAN type declaration statements. The declarations specify the class of the entities used in the program, such as integers, real numbers, arrays, and so on. For example, the head section of an ALGOL-60 program may be
As can be seen, comment lines for documentation are identified by the keyword comment, and procedures are identified by the keyword procedure followed by the name of the procedure. The second block, which is the main part of the program, consists of a sequence of statements that are to be executed. It is initiated by the keyword begin and terminated by the keyword end. In fact this is the common structure of ALGOL procedures, and the program format supports procedures within procedures. For example, the following body section of a sorting procedure contains a second procedure within it, as
While the ALGOL programming language was overshadowed by the FORTRAN programming language and did not become popular, it featured a number of innovative aspects that have since become staples of essentially all major programming languages. In particular, the nested procedure structure foreshadowed the object-oriented programming style. It was the first language to make use of start-end identifiers as block delimiters, a convention that has carried over in object-oriented languages using function delimiters such as the { and } brace characters. ALGOL procedures included conditional statements (if…then and if…else), and iterative statements (for… until). Functions could call themselves in recursive computations (as in the statement i = i + j), and ALGOL enabled dynamic arrays in which the subscript range of the array elements was defined by the value of a variable, as in the array element ij. ALGOL also used reserved keywords that could not be used as identifiers by a programmer, but it also allowed user-defined data types.
—Richard M. Renneboog M.Sc.
Malcolme-Lawes, D.J. (1969) Programming – ALGOL London, UK: Pergamon Press. Print.
Organick, E.I., Forsythe, A.I. and Plummer, R.P. (1978) Programming Language Structures New York, NY: Academic Press. Print.
O'Regan, Gerard (2012) A Brief History of Computing 2nd ed., New York, NY: Springer-Verlag. Print.
Wexelblat, Richard L. (1981) History of Programming L:anguages New York, NY: Academic Press. Print.
Rutishauer, Heinz (1967) “Description of ALGOL-60” Chapter in Bauer, F.L., Householder, I.S., Olver, F.W.J., Rutishauer, H., Samelson, K. and Stiefel, E., eds. Handbook for Automatic Computation Berlin, GER: Springer-Verlag. Print.