CONTRIBUTIONS TO ALGOL 60 (1959-60)


Commentary 1990

The results of the work by international committees on the algorithmic language ALGOL 60, of which I was a member, have been published in the form of the Report on the Algorithmic Language ALGOL 60 [1960] and the Revised Report on the Algorithmic Language ALGOL 60 [1963]. Both have been made widely available in the form of reprints and the revised version has gained status as a Citation Classic [Current Contents, no. 2 January 9, 1984, p. 16]. The history of the development of the language has been described at length in R. L. Wexelblat (ed.): History of Programming Languages, ALGOL Session, p. 75-172. Further notes on my personal situation at the time may be found in section 10.3 Regnecentralen and ALGOL 60 of the present selection. Here my contributions will be demonstrated by three selections, given in sections 2.1.1, 2.1.2, and 2.1.3. The first one from June 1959 was published in the ALGOL-Bulletin as a contribution to the clarification of the meaning of the preliminary report on ALGOL, the so-called ZŸrich or ALGOL 58 report. It takes up the handling of parameters in procedure calls, which became a major issue in the revisions incorporated in ALGOL 60. The second selection, section 2.1.2, is the draft that I contributed to the participants at the meeting in Paris in January 1960, as a demonstration of the form of description I wished to recommend. The third selection, section 2.1.3, is that part of the final Report on the Algorithmic Language ALGOL 60 which is concerned with procedure calls and declarations. Taken together the three selections illustrate concretely the issues of the development of ALGOL 60 with which I have been most concerned, particularly the question of the form of description of the language and the interplay of description and language substance. Thus the first selection, from the ALGOL-Bulletin, is at the same time a critique of the procedure concept of ALGOL 58 and of the manner in which it is described. The second selection, the draft, contains in its elaborate, provisionally numbered, sections 4. .8 and 4. .9 an attempt at a clarification of that procedure concept. The very tediousness of these sections became one strong reason why in ALGOL 60 the distinction between input and output parameters was rejected, resulting in the description given in the third selection, from the final ALGOL 60 report.