Revised Report on the Algorithmic Language ALGOL 68 Edited By: A
Total Page:16
File Type:pdf, Size:1020Kb
Revised Report on the Algorithmic Language ALGOL 68 Edited by: A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck, C.H.A. Koster, M. Sintzoff, C.H. Lindsey, L.G.T. Meertens and R.G. Fisker. This Report has been accepted by Working Group 2.1, reviewed by Technical Committee 2 on Programming and approved for publication by the General Assembly of The International Federation for Information Processing. Re- production of the Report, for any purpose, but only of the whole text, is explicitly permitted without formality. The translation 1.1.5 of the Report to TEX source language was created by: f W.g B. Kloke, mailto:[email protected] . Remarks on this edition are collected into a separated document, http://vestein.arb-phys.uni-dortmund.de/~ wb/RR/vorwort.tex. Further versions will be found also in http://vestein.arb-phys.uni- dortmund.de/~ wb/RR/. The table of contents had to be removed, because page numbers are not a valid concept in TEX source language. Known errata, as published in Algol Bulletin No. 41 and ::: , are cor- rected. Syntactic errors in the standard-prelude, as mentioned in Commen- tary AB 43 p.7f, are corrected also. The Partial Parametrization Proposal (AB39.3.1) has been appended to the text. Layout of examples may still be improved. 1 Section ALGOL 68 Revised Report Acknowledgements Habent sua fata libelli. f De litteris Terentianus Maurus g Working Group 2.1 on ALGOL of the International Federation for Infor- mation Processing has discussed the development of \ALGOL X", a succes- sor to ALGOL 60 [3] since 1963. At its meeting in Princeton in May 1965, WG 2.1 invited written descriptions of the language based on the previous discussions. At the meeting in St Pierre de Chartreuse near Grenoble in Oc- tober 1965, three reports describing more or less complete languages were amongst the contributions, by Niklaus Wirth [8], Gerhard Seegmueller [6], and Aad van Wijngaarden [9]. In [6] and [8], the descriptional technique of [3] was used, whereas [9] featured a new technique for language design and definition. Other significant contributions available were papers by Tony Hoare [2] and Peter Naur [4, 5]. At subsequent meetings between April 1966 and December 1968, held in Kootwijk near Amsterdam, Warsaw, Zandvoort near Amsterdam, Tirrenia near Pisa and North Berwick near Edinburgh, a number of successive ap- proximations to a final report, commencing with [10] and followed by a series numbered MR 88, MR 92, MR 93, MR 95, MR 99 and MR 100, were sub- mitted by a team working in Amsterdam, consisting first of A. van Wijngaar- den and Barry Mailloux, later reinforced by John Peck, and finally by Kees Koster. Versions were used during courses on the language held at various centres, and the experience gained in explaining the language to skilled au- diences and the reactions of the students influenced the succeeding versions. The final version, MR 101 [11], was adopted by the Working Group on De- cember 20th 1968 in Munich, and was subsequently approved for publication by the General Assembly of I.F.I.P. Since that time, it has been published in Numerische Mathematik [12], and translations have been made into Russian) [13], into German [14], into French [15], and into Bulgarian [16]. An \Infor- mal Introduction", for the benefit of the uninitiated reader, was also prepared at the request of the Working Group [18]. The original authors acknowledged with pleasure and thanks the whole- hearted cooperation, support, interest, criticism and violent objections from members of WG 2.1 and many other people interested in ALGOL. At the risk of embarrassing omissions, special mention should be made of Jan Gar- wick, Jack Merner, Peter Ingerman and Manfred Paul for [1], the Brussels group consisting of M. Sintzoff, P. Branquart, J. Lewi and P. Wodon for nu- merous brainstorms, A.J.M. van Gils of Apeldoorn, G. Goos and his group at Munich, also for [7], G.S. Tseytin of Leningrad, and L.G.L.T. Meertens 2 Section van Wijngaarden, et al. and J.W. de Bakker of Amsterdam. An occasional choice of a, not inherently meaningful, identifier in the sequel may compensate for not mentioning more names in this section. Since the publication of the Original Report, much discussion has taken place in the Working Group concerning the further development of the lan- guage. This has been influenced by the experience of many people who saw disadvantages in the original proposals and suggested revised or extended fea- tures. Amongst these must be mentioned especially: I.R. Currie, Susan G. Bond, J.D. Morison and D. Jenkins of Malvern (see in [17]), in whose di- alect of ALGOL 68 many features of this Revision may already be found; P. Branquart, J.P. Cardinael and J. Lewi of Brussels, who exposed many weak- nesses (see in [17]); Ursula Hill, H. Woessner and H. Scheidig of Munich, who discovered some unpleasant consequences: the contributors to the Rapport d'Evaluation [19]: and the many people who served on the Working Group subcommittees on Maintenance and Improvements (convened by M. Sintzoff) and on Transput (convened by C.H. Lindsey). During the later stages of the revision, much helpful advice was given by H. Boom of Edmonton, W. Freeman of York, W.J. Hansen of Vancouver, Mary Zosel of Livermore, N. Yoneda of Tokyo, M. Rain of Trondheim, L. Ammeraal, D. Grune, H. van Vliet and R. van Vliet of Amsterdam, G. van der Mey of Delft, and A.A. Baehrs and A.F. Rar of Novosibirsk. The editors of this revision also wish to acknowledge that the wholehearted cooperation, support, interest, criticism and violent objections on the part of the members of WG 2.1 have continued unabated during this time. [1] J.V. Garwick, J.M. Merner, P.Z. Ingerman and M. Paul, Report of the ALGOL-X - I-O Subcommittee, WG 2.1 Working Paper, July 1966. [2] C.A.R. Hoare, Record Handling, WG 2.1 Working Paper, October 1965; also AB.21.3.6. November 1965. [3] P. Naur (Editor), Revised Report on the Algorithmic Language ALGOL 60, Regnecentralen, Copenhagen, 1962, and elsewhere. [4] P. Naur, Proposals for a new language, AB.18.3.9, October 1964. [5] P. Naur, Proposals for introduction on aims, WG 2.1 Working Paper, October 1965. [6] G. Seegmueller, A proposal four a basis for a Report on a Successor to ALGOL 60. Bavarian Acad. Sci., Munich, October 1965. [7] G. Goos, H. Scheidig, G. Seegmueller and H. Walther, Another proposal for ALGOL 67. Bavarian Acad. Sci., Munich, May 1967. [8] N. Wirth, A Proposal for a Report on a Successor of ALGOL 60, Mathematisch Centrum, Amsterdam, MR 75, October 1965. [9] A. van Wijngaarden, Orthogonal Design and Description of a Formal 3 Section ALGOL 68 Revised Report 01 Language, Mathematisch Centrum, Amsterdam, MR 76, October 1965. [10] A. van Wijngaarden and B.J. Mailloux, A Draft Proposal for the Algorithmic Language ALGOL X, WG 2.1 Working Paper, October 1966. [11] A. van Wijngaarden (Editor), B.J. Mailloux, J.E.L. Peck and C.H.A. Koster, Report on the Algorithmic Language ALGOL 68, Mathematisch Centrum. Amsterdam, MR 101, February 1969. [12] idem, Numerische Mathematik, Vol. 14, pp. 79-218. 1969. [13] 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. [14] Bericht ueber die Algorithmische Sprache ALGOL 68, translation into German by I.O. Kerner, Akademie-Verlag, Berlin, 1972. [15] D´efinitiondu Langage Algorithmique ALGOL 68, translation into French by J. Buffet, P. Arnal, A. Qu´er´e(Eds.), Hermann, Paris, 1972. [16] Algoritmichniyat yezik ALGOL 68, translation into Bulgarian by D. Toshkov and St. Buchvarov, Nauka i Yzkustvo, Sofia, 1971. [17] J.E.L. Peck (Ed.), ALGOL 68 Implementation (proceedings of the I.F.I.P. working conference held in Munich in 1970), North Holland Publish- ing Company, 1971. [18] C.H. Lindsey and S.G. van der Meulen, Informal introduction to ALGOL 68, North Holland Publishing Company 1971. [19] J.C. Boussard and J.J. Duby (Eds.), Rapport d'Evaluation AL- GOL 68, Revue d'Informatique et de Recherche Op´erationelle, B2, Paris, 1970. [20] W.J.Hansen and H. Boom, Report on the Standard Hardware Representationf for Revised ALGOL 68, ALGOL Bulletin, 40, pp. 24{43, 1976. yg 0. Introduction 0.1. Aims and principles of design a) In designing the Algorithmic Language ALGOL 68, Working Group 2.1 on ALGOL of the International Federation for Information Processing expresses its belief in the value of a common programming language serving many people in many countries. This is added by the editor to the list, for reasons explained in footnotes iny 9.3 and 9.4.2.2. 4 Section012 van Wijngaarden, et al. b) ALGOL 68 is designed to communicate algorithms, to execute them efficiently on a variety of different computers, and to aid in teaching them to students. c) This present Revision of the language is made in response to the di- rective of the parent committee, I.F.I.P. TC 2, to the Working Group to \keep continually under review experience obtained as a consequence of this original publication, so that it may institute such corrections and revisions tof the Reportg as become desirable". In deciding to bring forward this Re- vision at the present time, the Working Group has tried to keep in balance the need to accumulate the maximum amount of experience of the problems which arose in the language originally defined, as opposed to the needs of the many teams at present engaged in implementation, for whom an early and simple resolution of those problems is imperative.