Evolving algorithmic language
Documents from the development of the Algol 58, Algol 60, and Algol 68 standards, as well as their revisions and subsets.
- Heinz Rutishauser. Über automatische Rechenplanfertigung bei programmgesteuerten Rechenmaschinen. Zeitschrift für Angewandte Mathematik und Mechanik (Journal of Applied Mathematics and Mechanics), Volume 31, Issue 8-9, 1951, page 255.
- GAMM Fachausschuß Programmieren, Hrsg (GAMM Committee on Programming, editor). Vorschläge für eine algorithmische Schreibweise zur Formelübersetzung (Proposals for an algorithmic notation for formula translation). Zűrich, Mainz, Műnchen, Darmstadt, October 1957.
- F. L. Bauer, H. Bottenbruch, H. Rutishauser, K. Samelson. Proposal for a universal language for the description of computing processes. In: J. W. Carr (ed.), Computer Programming and Artificial Intelligence, University of Michigan Summer School 1958, pages 355-373. PDF
- J. W. Backus, P. H. Diselets, D. C. Evans, R. Goodman, H. Huskey, C. Katz, J. McCarthy, A. Orden, A. J. Perlis, R. Rich, S. Rosen, W. Turanski, J. Wegstein. Proposal for A Programming Language. ACM Ad Hoc Committee on Languages, 1958. From Herbert Stoyan Collection on LISP Programming, Lot X5687.2010, Computer History Museum. PDF
''This report gives the technical specifications of a programming language proposed by the Ad Hoc Committee on Languages of the Association for Computing Machinery. ...
The objectives of the Ad Hoc Committee in designing the language described herein were to provide a language suitable for:
(1) publication of computing procedures in a concise and widely understood notation,
(2) accurate and convenient programming of computing procedures in a language mechanically translatable into machine programs for a variety of machines."
- A. J. Perlis and K. Samelson, editors. Preliminary report, published with different titles and slight editing differences in lecture notes and two journals.
- A. J. Perlis and H. Samelson. Report on a Proposed International Standard for a Common Algebraic Language for Digital Computers. In: J. W. Carr (ed.), Computer Programming and Artificial Intelligence, University of Michigan Summer School 1958, pages 375-401. PDF
- Preliminary report: international algebraic language. Communications of the ACM, Volume 1, Number 12 (December 1958), pages 8-22. PDF ACM Digital Library
- Report on the Algorithmic Language Algol by the ACM Committee on Programming Languages and the GAMM Committee on Programming. Numerische Mathematik, Volume 1, Number 1, 1959, pages 41-60 (1959). PDF SpringerLink
- Julien Green. Possible modification to the international algebraic language. Communications of the ACM, Volume 2, Number 2 (February 1959), pages 6-8. ACM Digital Library
- Peter Naur, editor. ALGOL Bulletin. Number 1 (March 1959) through Number 15 (June 1962). Computer History Museum (CHM) ACM Digital Library (free web account required for access)
"The ALGOL Bulletin, the European medium for disseminating ALGOL intensive matters, was established at a subsequent European conference in Copenhagen in 1959, and the first of its issues appeared that March. Peter Naur of the Danish Regnecentralen was its first editor." [Perlis, HOPL paper, 1981]
- Friedrich L. Bauer and Klaus Samelson. The problem of a common language, especially for scientific numeral work. Proceedings of the International Conference on Information Processing, UNESCO, Paris, June 1959, pages 120-124. PDF Abstract at unesdoc.unesco.org
Abstract: "The value of such a common language for easy and precise intercommunication has been felt since some time. This is demonstrated by the existence of users' associations (SHARE, USE), which however have solved the communication problem only on the basis of their special computer language. It seemed obvious for practical reasons that a common language could not even be a special computer oriented language, favouring more or less one or some of the existing, in their computer language to a considerable amount differing computers. Without doubt a universal computer oriented language (UNCOL) has importance for a number of technical intercommunication problems including the translation process from a common language to computer languages; but it was felt by the Zűrich Conference that a common language for numerical analysis and for the use of computers in scientific computation should be as close as possible to common mathematical notation, the more as this is already a unifying clement. There was no question that the language like FORTRAN should be an operational constructive language (its semantic meaning being a sequence of operations in real time defined in a constructive way), in order to make it possible to execute the language by a computer or to translate it mechanically into a special computers' language. This excludes, of course, all intentional (implicit definition using) parts of mathematical notation. But special attention has been given by the Conference to the possibilities of using free constructive definitions for numerical procedures as a counterpart to the idea of sub-routines and library routines. Thus the wanted language presents itself as an algorithmic language (ALGOL) in the sense of RUTISHAUSER'S early idea, being a special problem-oriented language. It was the task of the conference to standardize the arithmetic notation and to supplement it in order to make it completely operational."
- J. W. Backus. The Syntax and Semantics of the Proposed International Algebraic Language of the Zurich ACM-GAMM Conference.
- Proceedings of the International Conference on Information Processing, UNESCO, Paris, June 1959, pages 125-132. PDF Abstract at unesdoc.unesco.org
- Typewritten preprint. PDF
"Only in October 1959, during a second phase of studying Backus's Paris report, did I penetrate through his formal, syntactic description. This made me realize that his notation would be a highly valuable tool for the kind of description that I had in mind." [Naur, HOPL paper, 1981]
- J. Poyen and Bernard Vauquois. A propos d'un langage universe (Suggestions for a universal language). Proceedings of the International Conference on Information Processing, UNESCO, Paris, June 1959, pages 132-137. In French. PDF Abstract at unesdoc.unesco.org
Abstract: "This paper considers a universal language designed for use by scientists whose sole concern is to solve their problems rapidly, without regard to the technical difficulties in coding for different types of computer. Such a language must therefore be quick and easy to learn, suitable for the formulation of all scientific problems, and usable with any sufficiently powerful machine. It begins by making a rapid analysis of the results obtained with existing systems of automatic programming-none of which, despite the progress made, have yet escaped from programming conventions imposed by the computer.
It then discusses the conditions which any proposed universal language must fulfil in order to serve this purpose; in particular, clarity of script, flexibility of use and ease of learning are all essential. In the light of these criteria, the authors examine the algorithmic language proposed at the Zurich conference (27 May to 2 June 1958). The universal language now proposed is based on the classification of mathematical entities which was adopted at that conference. Although it retains certain features of the algorithmic system, it embodies some differences in the forms used for transcribing the programme components, and proposes a new method of drafting.
This language is designed to meet the needs of scientists only, and makes no claim to be exhaustive; but its structure is such that it could be incorporated in an 'expanded' language suitable for the drafting of all matter in the field of information processing."
- A . J. Perlis, coordinator. Symposium on automatic programming. Proceedings of the International Conference on Information Processing, UNESCO, Paris, June 1959, pages 152-155. PDF Abstract at unesdoc.unesco.org
"Automatic programming (AP) is concerned with transforming problem oriented command languages into machine language codes. The solution of a problem generally begins with the statement of an algorithm which must be given in some notation, preferably one which provides full operational and descriptive power and uses an optimum number of symbols. The need to transform this into machine code itself leads to algorithms which should be written in a problem oriented language. This gives a recurrence procedure and implies that a few problem-oriented languages are sufficient." Short items by Perlis, Holt, Huskey, Kobrinski, Poyen, Riesel, and Bauer & Samelson, followed by a discussion.
- John McCarthy. Letter to the editor. Communications of the ACM, Volume 2, Number 8 (August 1959), pages 2-3. ACM Digital Library
"The object of this note is to advocate that the IAL language be extended to include two additional notations: conditional expressions and recursive definitions."
- H. Bratman, J. Green, J. Stockman, and A. R. Watson. Recommendations of the SHARE ALGOL Committee. Communications of the ACM, Volume 2, Number 10 (October 1959), pages 25-26. ACM Digital Library
- E.T. Irons and F. S. Acton. A proposed interpretation in ALGOL. Communications of the ACM, Volume 2, Number 12 (December 1959), pages 14-15. ACM Digital Library
- Peter Naur. ALGOL 60 Draft Report. Regnecentralen, January 9, 1960. Section 2.1.2 in: Peter Naur. Computing: A Human Activity. ACM Press, Addison-Wesley Publishing Company, 1992.
"One last thing I'd like to add is that Peter Naur's conduct of the ALGOL Bulletin and his incredible preparation for that Paris meeting [January 11-16, 1960] in which ALGOL was all written down already in his notebook--he changed it a little bit in accordance with the wishes of the committee, but it was that stuff that really made ALGOL the language that it is, and it wouldn't have even come about, I don't think, had he not done that. [Backus, HOPL Q&A, 1981]
- J. W. Backus, F. L. Bauer, J. Green, C. Katz, J. McCarthy, P. Naur, A. J. Perlis, H. Rutishauser, K. Samelson, B. Vauquois, J .H. Wegstein, A. van Wijngaarden, M. Woodger; edited by Peter Naur. Report on the Algorithmic Language ALGOL 60. 1960.
- Numerische Mathematik, Volume 2, Number 1 (December 1960), pages 106-136. SpringerLink
- Acta Polytechnica Scandinavica, Applied Mathematics and Computing Machinery No. 5 (AP 284, 1960), typewritten, 39 pages. PDF at fh-jena.de
- Communications of the ACM, Volume 3, Number 5 (May 1960).
- German translation by I. O. Kerner. Published as supplement to Elektronische Rechenanlagen and also by Akademie-Verlag, Berlin 1962. PDF at fh-jena.de
- D. E. Knuth and J. N. Merner. ALGOL 60 confidential. Communications of the ACM, Volume 4, Number 6 (June 1961), pages 268-272. ACM Digital Library
"In this paper some of the more obscure features of the language are considered and their usefulness is discussed."
- C. Strachey and M. V. Wilkes. Some proposals for improving the efficiency of ALGOL 60. Communications of the ACM, Volume 4, Number 11 (November 1961), pages 488-491. ACM Digital Library
- G. A. Bachelor, J. R. Dempster, D. E. Knuth, and J. Speroni. SMALGOL-61. Communications of the ACM, Volume 4, Number 11 (November 1961), 499-502. ACM Digital Library
- E.L. Manderfield, E. L. A report on the status of SMALGOL. In Proceedings of the 1962 ACM National Conference on Digest of Technical Papers (September 01 - 01, 1962). ACM '62. ACM, New York, NY, 92-93. ACM Digital Library
- J. W. Backus, F. L. Bauer, J. Green, C. Katz, J. McCarthy, P. Naur, A .J. Perlis, H. Rutishauser, K. Samelson, B. Vauquois, J. H. Wegstein, A. van Wijngaarden, M. Woodger; edited by Peter Naur. Revised Report on the Algorithmic Language ALGOL 60.
"A first attempt to automatize programming for computers was made by H. Rutishauser ... The new language follows essentially the ideas given by Rutishauser in his original paper as stated in Section 1: A formula program, that is description of a computing process in this language, consists in 'ergibt' formulae (describing the arithmetic operations to be carried out), and in 'guiding symbols' (e.g., for i = 1 ... or similar verbal statements) describing the structure of the computing process. Ergibt-formulae and guiding-symbols are called 'statements'. [Bauer et al. 1958]
English translation of German document from Zűrich, Mainz, Műnchen, Darmstadt (ZMMD-Projekt). Dated May 9, 1958. In "The Cellar Principle of State Transition and Storage Allocation", Bauer cites this document as having additional authors P. Graeff, P. Lauchli, and M. Paul.
"Editors' Note. In the interest of immediate circulation of the results of the ACM -- GAMM committee work on an algebraic programming language, this preliminary report is presented. The language described naturally enough represents a compromise -- but one based more on differences of taste than on content or fundamental ideas. Even so, it provides a natural and simple medium for the expression of a large class of algorithms. This report has not been thoroughly examined for errors and inconsistencies. It is anticipated that the committee will prepare a more complete description of the language for later publication.
For all scientific purposes reproduction of this report is explicitly permitted without any charge."
- Communications of the ACM, Volume 6, Number 1 (January 1963), pages 1-17. PDF ACM Digital Library
- Numerische Mathematik, Volume 4, Number 1 (December 1962), pages 420-453. SpringerLink
- The Computer Journal, Volume 5, Number 4 (1963), pages 349-367. Oxford Journals
- Version from Algol Manual der ALCOR Gruppe. PDF at fh-jena.de
- Corrected reprint. A/S Regnecentralen, Copenhagen, 1964. PDF at datamuseum.dk
- R. E. Utman. Suggestions on ALGOL 60 (ROME) issues : A Report by the American Standards Subcommittee X3.4.2. Communications of the ACM, Volume 6, Number 1 (January 1963), pages 20-23. ACM Digital Library
- Niklaus Wirth. A generalization of ALGOL. Communications of the ACM, Volume 6, Number 9 (September 1963), pages 547-554. ACM Digital Library
- ECMA Subset of ALGOL 60.
- A. Van Wijngaarden. Generalized ALGOL.
- MR57, Mathematisch Centrum, Amsterdam, 1963. Online at cwi.nl
- In Annual Review in Automatic Programming, Volume 3, edited by R. Goodman, Pergamon Press, Oxford, 1963, pages 17-26. ScienceDirect
- D. E. Knuth et al., A Proposal for Input-Output Conventions in ALGOL 60, Communications of the ACM, Volume 7, Number 5 (May 1964), pages 273-283. ACM Digital Library
- F. G. Duncan, editor. ALGOL Bulletin. Number 16 (May 1964) through Number 33 (March 1972). Computer History Museum (CHM) ACM Digital Library (free web account required for access)
- IFIP W.G. 2.1. Report on SUBSET ALGOL 60 (IFIP).
- A. van Wijngaarden. Recursive Definition of syntax and semantics. In: T. B. Steel, Jr. (editor). Formal Language Description Languages for Computer Programming : Proceedings of IFIP Technical Committee 2 Working Conference (September 15-18, 1964, Vienna). North Holland, Amsterdam, 1966, pages 13-24.
- IFIP W.G. 2.1. Report on Input-Output Procedures for ALGOL 60.
- P. Naur. Proposals for a new language. ALGOL Bulletin, Number 18 (October 1964), pages 26-43. CHM ACM Digital Library
- Niklaus Wirth and Helmut Weber. EULER: A generalization of ALGOL, and its formal definition.
- Technical Report CS-TR-65-20, Computer Science Department, Stanford University, April 27, 1965. Online at infolab.stanford.edu
- Part 1: Communications of the ACM, Volume 9, Number 1 (January 1966), pages 13-25. ACM Digital Library
- Part 2: Communications of the ACM, Volume 9, Number 2 (February 1966), pages 89-99. ACM Digital Library
- J. W. de Bakker. Formal definition of algorithmic languages with an application to the definition of Algol 60. Mathematich Centrum, Amsterdam, MR74, May 1965. Online at cwi.nl
- C.A.R. Hoare. Record Handling.
- WG 2.1 Working Paper, October 1965.
- ALGOL Bulletin, Number 21 (November 1965), pages 39-69. CHM ACM Digital Library
- Lectures presented at The NATO Summer School, Villard-de-Lans, September 12-16, 1966. Computer History Museum, Lot X4100.2007. PDF at computerhistory.org
- In: F. Genuys, editor. Programming Languages, Academic Press, 1968, pages 291-347.
- G. Seegműller. A proposal for a basis for a Report on a Successor to ALGOL 60. Bavarian Academy of Science, Munich, October 1965.
- P. Naur. Proposals for introduction on aims. IFIP WG 2.1 Working Paper, October 1965.
- N. Wirth. A Proposal for a Report on a Successor of ALGOL 60. MR75, Mathematisch Centrum, Amsterdam, October 1965. Online at cwi.nl
- A. van Wijngaarden. Orthogonal Design and Description of a Formal Language. MR76, Mathematisch Centrum, Amsterdam, October 1965. Online at cwi.nl
- N. Wirth and C. A. R. Hoare. A contribution to the development of ALGOL. Communications of the ACM, Volume 9, Number 6 (June 1966), pages 413-432. ACM Digital Library
"Euler caught the attention of the IFIP Working Group that was engaged in planning the future of ALGOL. The language ALGOL 60, designed by and for numerical mathematicians, had a systematic structure and a concise definition that were appreciated by mathematically trained people but lacked compilers and support by industry. To gain acceptance, its range of application had to be widened. The Working Group assumed the task of proposing a successor and soon split into two camps. On one side were the ambitious who wanted to erect another milestone in language design, and, on the other, those who felt that time was pressing and that an adequately extended ALGOL 60 would be a productive endeavor. I belonged to this second party and submitted a proposal that lost the election. Thereafter, the proposal was improved with contributions from Tony Hoare (a member of the same group) and implemented on Stanford University's first IBM 360. The language later became known as ALGOL W and was used in several universities for teaching purposes." [Wirth 1985]
- J.V. Garwick, J.M. Merner, P. Z. Ingerman and M. Paul. Report of the ALGOL-X - I-O Subcommittee. IFIP WG 2.1 Working Paper, July 1966.
- A. van Wijngaarden and B. J. Mailloux. A Draft Proposal for the Algorithmic Language ALGOL X. IFIP WG 2.1 Working Paper 47 (Warsaw 2), October 1966.
- G. Goos, H. Scheidig, G. Seegmueller and H. Walther. Another proposal for ALGOL 67. Bavarian Academy of Science, Munich, May 1967. PDF
- D. E. Knuth. The remaining trouble spots in ALGOL 60. Communications of the ACM, Volume 10, Number 10 (October 1967), pages 611-618. ACM Digital Library
- A. van Wijngaarden, B. J. Mailloux, and J. E. L. Peck. A Draft Proposal for the Algorithmic Language ALGOL 67, MR88, Mathematisch Centrum, Amsterdam, May 1967.
- A. van Wijngaarden, B. J. Mailloux, and J. E. L. Peck. A Draft Proposal for the Algorithmic Language ALGOL 68. MR92, Mathematisch Centrum, January 1968. Online at cwi.nl
- A. van Wijngaarden, B. J. Mailloux, J. Peck, and C. H. Koster. Draft Report on the Algorithmic Language ALGOL 68. MR93, Mathematisch Centrum, and ALGOL Bulletin, Supplement to Number 26 (March 1968), pages 1-84.
- A. van Wijngaarden (editor), B.J. Mailloux, J.E.L. Peck, and C.H.A. Koster. Working Document on the Algorithmic Language ALGOL 68. MR95, Mathematisch Centrum, July 1968. Online at cwi.nl
- A. van Wijngaarden (editor), B.J. Mailloux, J.E.L. Peck, and C.H.A. Koster. Penultimate Draft Report on the Algorithmic Language ALGOL 68. MR 99, Mathematisch Centrum, Amsterdam, October, 1968.
- A. van Wijngaarden (editor), B. J. Mailloux, J. E. L. Peck, and C. H. Koster. Final Draft Report on the Algorithmic Language ALGOL 68. MR100, Mathematisch Centrum, December 1968. Online at cwi.nl
- A. van Wijngaarden (editor), B.J. Mailloux, J.E.L. Peck, and C.H.A. Koster. Report on the Algorithmic Language ALGOL 68. 1969.
- MR101, Mathematisch Centrum. Second printing, October 1969. Online at cwi.nl
- Numerische Mathematik, Vol. 14, pp. 79-218, 1969. PDF at fh-jena.de
- Soobshchenie ob algoritmicheskom yazyke ALGOL 68, translation into Russian by A.A. Baehrs, A.P. Ershov, L.L. Zmievskaya and A.F. Rar, Kybernetica, Kiev, Part 6 of 1969 and Part 1 of 1970.
- lgoritmichniyat yezik ALGOL 68, translation into Bulgarian by D. Toshkov and St. Buchvarov, Nauka i Yzkustvo, Sofia, 1971.
- Bericht űber die Algorithmische Sprache ALGOL 68, translation into German by I.O. Kerner, Akademie-Verlag, Berlin, 1972.
- Définition du Langage Algorithmique ALGOL 68, translation into French by J. Buffet, P. Arnal, A. Quéré (Eds.), Hermann, Paris, 1972.
- E. W. Dijkstra, F. G. Duncan, J. V. Garwick, C. A. R. Hoare, B. Randell, G. Seegmueller, W. M. Turski, and M. Woodger. Minority Report. ALGOL Bulletin, Number 31, March 1970, page 7. PDF at cs.ncl.ac.uk
CHM ACM Digital Library
"We regard the current Report on Algorithmic Language ALGOL 68 as the fruit of an effort to apply a methodology for language definition to a newly designed programming language. We regard the effort as an experiment and professional honesty compels us to state that in our considered opinion we judge the experiment to be a failure in both respects."
- J. E. L. Peck. An ALGOL 68 Companion. Revised Preliminary Edition, Technical Report 71-01, Department of Computer Science, University of British Columbia, Canada, March 1972. Scan of Peck's working copy, with markups for next revision, courtesy of Peck's son Edward Peck. PDF
- C. H. Lindsey, editor. ALGOL Bulletin. Number 34 (July 1972) through Number 52 (August 1988). CHM ACM Digital Library (free web account required for access)
- ISO/R 1538, Programming Language ALGOL, 1972.
- A. van Wijngaarden (editor), B. J. Mailloux, J. E. L. Peck, C. H. A. Koster, M. Sintzoff, C. H. Lindsey, L. G. T. Meertens and R. G. Fisker. Revised Report on the Algorithmic Language Algol 68.
- Technical Report TR 74-3, Department of Computing Science, University of Alberta, March 1974. First printing; errata published in ALGOL Bulletin AB37.5 (July 1974), AB38.5.1 (December 1974), and AB39.5.1 (February 1976).
- Acta Informatica, Volume 5, Number 1-3 (1975), pages 1-236. Online at cwi.nl SpringerLink
- Tract 50, Mathematisch Centrum. Online at cwi.nl
- SIGPLAN Notices, Volume 12, Number 5 (May 1977), pages 1-70. ACM Digital Library
- I. O. Kerner (translator). Revidierter bericht űber die algorithmische sprache ALGOL 68. Akademie-Verlag, Berlin, 1978.
- A. A. Bahrs (translator) and A. P. Ershov (editor), Peresmotrenoye So'obszczeniye ob ALGOLE 68. Izdatelstvo "MIR", Moscow, 1979.
- Lu Ru Qian (translator). 算法语言 ALGOL68 修改报告. Beijing, Science Press, August 1982.
- Edition with authorized errata through 1978. ALGOL Bulletin, Supplement to Number 47 (August 1981), pages 1-119. PDF CHM ACM Digital Library
- Wilhelm Kloke (translator). HTML translation, April 2001. HTML at burks.bton.ac.uk
- Marcel van der Veer (translator). Completed and corrected version of Kloke's translation, July 2012. Online at jmvdveer.home.xs4all.nl
- J. E. L. Peck? Slides from talk on the revised report. Date and location unknown. PDF
- IFIP WG 2.1. Modified Report on the Algorithmic Language ALGOL 60, as modified by R. M. De Morgan, I. D. Hill and B. A. Wichmann, under the authority of IFIP Working Group 2.1.
- P. G. Hibbard. A Sublanguage of ALGOL 68. SIGPLAN Notices, Volume 12, Number 5 (May 1977), pages 71-79. ACM Digital Library
- W. J. Hansen and H. Boom. The report on the standard hardware representation for ALGOL 68. SIGPLAN Notices Volume 12, Number 5 (May 1977), pages 80-87. ACM Digital Library
- C. H. Lindsey and S. G. van der Meulen. Informal Introduction to ALGOL 68 : Revised Edition. Second completely revised edition 1977 / Revised reprint 1980, second printing 1981. Copyright IFIP, 1977. Posted here by permission of IFIP.
- Anonymous. Programming languages - ALGOL 60. International Standard ISO 1538. First edition, October 15, 1984, 12 pages. PDF
"NOTE: This Report is published in the Communications of the ACM, in Numerische Mathematik, and in the Computer Journal. Reproduction of this Report for any purpose is explicitly permitted; reference should be made to this issue of the Communications and to the respective issues of Numerische Mathematik and the Computer Journal as the source."