ebook img

Revised Report on the Algorithmic Language Algol 68 PDF

240 Pages·1976·20.3 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Revised Report on the Algorithmic Language Algol 68

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. L. T. Meertens and R. G. Fisker Springer. . Verlag Berlin· Heidelberg. New York 1976 ISBN-13: 978-3-540-07592-9 e-ISBN-13: 978-3-642-95279-1 DOl: 10.1007/978-3-642-95279-1 Library of Congress Cataloging in Publication Data. Main entry under title: Revised report on the algorithmic language ALGOL 68. Published in 1971 under title: R~port on the algorithmic language ALGOL 68. Bibliography: p. Includes index. 1. ALGOL (Computer program language) I. Wijngaarden, Adriaan, van. QA76.73.A24R45 1975 001.6'424 75-45007 This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically those of translation, reprinting, re-use of illustrations, broadcasting, reproduction by photocopying machine or similar means, and storage in data banks. Under § 54 of the German Copyright Law where copies are made for other than private use, a fee is payable to the publisher, the amount of the fee to be determined by agreement with the publisher. © by Springer-Verlag Berlin Heidelberg 1976 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. Reproduction of the Report, for any purpose, but only of the whole text, is explicitly permitted without formality. CONTENTS Acknowledgements ................................................................................. 6 O. Introduction............ ............................................................................. 8 0.1. Aims and principles of design. .............. .... ....... ...................... ....... 8 0.1.1. Completeness and clarity of description................................. 9 0.1.2. Orthogonal design........ ........ ........ ...................... ..... ............... 9 0.1.3. Security................................................................................. 9 0.1.4. Efficiency.............................................................................. 9 0.2. Comparison with ALGOL 60 .......................................................... 10 0.3. Comparison with the language defined in 1968............................... 13 0.4. Changes in the method of description............................................ 15 PART I Preliminary definitions 1. Language and metalanguage ............................................................... 17 1.1. The method of description ............................................................ 17 1.1.1. Introduction .......................................................................... 17 1.1.2. Pragmatics ........................................................................... 18 1.1.3. The syntax of the strict language.. ................................... ..... 19 1.1.3.1. Protonotions ......... ..................................... ..... ........ ....... 19 1.1.3.2. Production rules and production trees . ...... ......... ........... 21 1.1.3.3. Metaproduction rules and simple substitution ..... ........ ... 23 1.1.3.4. Hyper-rules and consistent substitution .......................... 25 1.1.4. The semantics ........... .......................................... ...... .... ....... 26 1.1.4.1. Hypernotions, designation and envelopment ................... 27 2 van Wijngaarden, et ai. 1.1.4.2. Paranotions .................................................................. 27 1.1.4.3. Undefined ... ........ ....... ........ ..... ..... ........ ....... ...... ........ .... 30 1.1.5. Translations and variants .................................................... 30 1.2. General meta production rules .. ....... ........... ... ....... ..... ....... ........... 31 1.3. General hyper-rules .................................................................... 33 2. The computer and the program .......................................................... 35 2.1. Terminology.. ...... ..... ........... .............. ......... ... ..... ............. ............ 36 2.1.1. Objects ................................................................................ 36 2.1.1.1. Values, locales, environs and scenes ............................. 36 2.1.1.2. Modes ...... .......... ............. ........... ... ..... .......... ..... ..... ...... 37 2.1.1.3. Scopes ................................ ......................... ................. 38 2.1.2. Relationships ....................................................................... 39 2.1.3. Values ................................................................................. 39 2.1.3.1. Plain values ................................................................. 39 2.1.3.2. Names .......................................................................... 41 2.1.3.3. Structured values ... ........ .... .......................... ................ 42 2.1.3.4. Multiple values ............................................................. 42 2.1.3.5. Routines .................................................. ..................... 45 2.1.3.6. Acceptability of values ....... ....... ... ... ............. .... ........ .... 45 2.1.4. Actions . ......... ... ..... ............ .... ........ ... .... .......... ...... ...... ...... ... 46 2.1.4.1. Elaboration ........................................ .......................... 46 2.1.4.2. Serial and collateral actions ......................................... 47 2.1.4.3. Initiation, completion and termination .......................... 48 2.1.5. Abbreviations .. .......... ....................... .... ...... .... ..... ................ 49 2.2. The program ............................................................................... 51 PART II Fundamental constructions 3. Clauses ........................................... ...... ...... ................... ..... ... ............. 53 3.1. Closed clauses ............................................................................. 53 3.2. Serial clauses .............................................................................. 54 3.3. Collateral and parallel clauses .............. ........ ........... ........... ........ 57 3.4. Choice clauses... ........ ...... ...... ... ......... ..... ....... ... ... ... ...... ......... ...... 59 3.5. Loop clauses ... ................... ............... ....... ...... .............. ........ ....... 63 4. Declarations, declarers and indicators ................................................ 66 4.1. Declarations. ......... ......... ... ...... .......... ........ ......... .... ... ......... ...... ... 66 4.2. Mode declarations ....................................................................... 67 4.3. Priority declarations ........... ..... ... ................................ ... ....... ...... 68 4.4. Identifier declarations ................................................................. 68 4.5. Operation declarations ... ......... .... ......... .......... .......... ............. ...... 70 4.6. Declarers .................................................................................... 71 4.7. Relationships between modes ...................................................... 71 4.8. Indicators and field selectors ...................................................... 76 ALGOL 68 Revised Report 3 5. Units ........................ .... ........ .......... .... ....... ............ .... ........ .... .... ..... .... 77 5.1. Syntax ........................................................................................ 77 5.2. Units associated with names ....................................................... 78 5.2.1. Assignations ...... .................. ............ ......................... ........... 78 5.2.2. Identity relations ..... ....... ..... ..................... ...... ..................... 79 5.2.3. Generators ........ ............. ... .......... .... ..... ... ............ ....... .......... 80 5.2.4. Nihils ...... ......................... ...... ...... ........................................ 82 5.3. Units associated with stowed values ....... ................ ...... ....... ........ 82 5.3.1. Selections ...................... ......................... ...... ............. .......... 82 5.3.2. Slices.... ............ ................................................................... 83 5.4. Units associated with routines ..................................................... 86 5.4.1. Routine texts ........... ................... ......... ................................ 86 5.4.2. Formulas. ..... ............... .......................... .................... .......... 87 5.4.3. Calls .................................................................................... 88 5.4.4. Jumps ......................... ..... ............... .......... .... ...... ........... ..... 89 5.5. Units associated with values of any mode ................................... 90 5.5.1. Casts ... ................................................................................ 90 5.5.2. Skips ..................... .......... ................................. ................... 90 PART III Context dependence 6. Coercion ........ ..................................................................................... 91 6.1. Coercees .................................. .......... ......................................... 91 6.2. Dereferencing ...................................................... .................. ..... 93 6.3. Deproceduring ........................... ................................................. 94 6.4. Uniting........................................................................................ 94 6.5. Widening.. ............................. ............. .......... ............................... 95 6.6. Rowing ....................................................................................... 96 6.7. Voiding ....................................................................................... 97 7. Modes and nests .............. ............................ .......... ........... .................. 98 7.1. Independence of properties .......................................................... 98 7.2. Identification in nests........ ..... ....... .... ....... ........... ....... ................. 101 7.3. Equivalence of modes ........................ .............................. ........... 103 7.4. Well-formedness .......................................................................... 107 PART IV Elaboration-independent constructions 8. Denotations 108 8.1. Plain denotations ....................................................................... 108 8.1.1. Integral denotations ... ......................... ....... ............ ..... ........ 108 4 van Wijngaarden, et al. 8.1.2. Real denotations ................... ............ .......... .......... ..... .... ..... 109 8.1.3. Boolean denotations ...... .............. ...... ................ ........... ....... 110 8.1.4. Character denotations ............................................. ........... 110 8.1.5. Void denotation .............. ...... ......................... ..................... 111 8.2. Bits denotations ............................................. .............. .............. 111 8.3. String denotations ........................ ....................... ............... ........ 112 9. Tokens and symbols ............... ........................................................... 113 9.1. Tokens ....................................................................................... 113 9.2. Comments and pragmats ........................................................... 114 9.3. Representations ....................................... ........... .......... ..... ... ..... 115 9.4. The reference language ..................... ................ ................. ....... 116 9.4.1. Representations of symbols .................. ................ ............. 1I8 9.4.2. Other TAX symbols ........................................................... 122 PART V Environment and examples 10. Standard environment ................................... ............ .............. ........ 124 10.1. Program texts ................................................ .......................... 124 lO.1.2. The environment condition ................................................ 125 lO.1.3. The method of description of the standard environment .... 126 lO.2. The standard prelude ............ .......... .................... ..................... 128 10.2.1. Environment enquiries ........ ........................ ....... ............... 128 lO.2.2. Standard modes ................................................................ 129 10.2.3. Standard operators and functions ...................................... 130 10.2.3.0. Standard priorities .................................................... 130 10.2.3.1. Rows and associated operations ................................. 130 10.2.3.2. Operations on boolean operands ................... .............. 131 10.2.3.3. Operations on integral operands ........................... ..... 131 10.2.3.4. Operations on real operands .............................. ........ 132 10.2.3.5. Operations on arithmetic operands ...... .............. ........ 133 10.2.3.6. Operations on character operands ............................. 133 10.2.3.7. Operations on complex operands ............................... 133 10.2.3.8. Bits and associated operations ................................... 135 10.2.3.9. Bytes and associated operations ........ .......... ......... ..... 136 10.2.3.10. Strings and associated operations ............................. 137 10.2.3.11. Operations combined with assignations .................... 137 10.2.3.12. Standard mathematical constants and functions ....... 138 10.2.4. Synchronization operations................................................ 139 10.3. Transput declarations .............................................................. 140 10.3.1. Books, channels and files .................................................. 140 10.3.1.1. Books and backfiles ................... ........ ................ ........ 140 10.3.1.2. Channels ................................................................... 141 10.3.1.3. Files ..................................................................... ..... 143 ALGOL 68 Revised Report 5 10.3.1.4. Opening and closing files ............................................. 147 10.3.1.5. Position enquiries ........................................................ 152 10.3.1.6. Layout routines ........................................................... 154 10.3.2. Transput values .................................................................. 158 10.3.2.1. Conversion routines ..................................................... 158 10.3.2.2. Transput modes........................................................... 163 10.3.2.3. Straightening ............................................................... 163 10.3.3. Formatless transput ...... ..................................................... 164 10.3.4. Format texts ...................................................................... 172 10.3.5. Formatted transput ............................................................ 191 10.3.6. Binary transput .................................................................. 205 10.4. The system prelude and task list ................................................ 208 10.4.1. The system prelude ............................................................ 208 10.4.2. The system task list ............................................................ 208 10.5. The particular preludes and postludes ........................................ 208 10.5.1. The particular preludes ...................................................... 208 10.5.2. The particular postludes ..................................................... 209 II. Examples .......................................................................................... 209 11.1. Complex square root .................................................................. 209 11.2. Innerproduct 1 ........................................................................... 210 11.3. Innerproduct 2 ........................................................................... 210 11.4. Largest element ......................................................................... 210 11.5. Euler summation ....................................................................... 211 11.6. The norm of a vector ................................................................. 211 11.7. Determinant of a matrix ............................................................ 212 11.8. Greatest common divisor ........................................................... 212 11.9. Continued fraction ...................................................................... 213 11.10. Formula manipulation .............................................................. 213 11.ll. Information retrieval ................................................................ 214 11.12. Cooperating sequential processes .............................................. 217 11.13. Towers of Hanoi ....................................................................... 217 12. Glossaries ......................................................................................... 218 12.1. Technical terms ......................................................................... 218 12.2. Paranotions ................................................................................ 224 12.3. Predicates .................................................................................. 227 12.4. Index to the standard prelude .................................................... 227 12.5. Alphabetic listing of meta production rules .................................. 231 6 van Wijngaarden. et al. Acknowledgements (Habent sua fata libelli. De litteris, Terentianus Maurus.) Working Group 2.1 on ALGOL of the International Federation for Information Processing has discussed the development of "ALGOL X". a successor to ALGOL 60 [3 J, 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 October 1965, three reports describing more or less complete languages were amongst the contributions. by Niklaus Wirth 18], Gerhard Seegmueller [6]. and Aad van Wijngaarden 191. In [61 and 181. the descriptional technique of [3] was used, whereas [91 featured a new technique for language design and definition. Other significant contributions available were papers by Tony Hoare 121 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 approximations to a final report. commencing with 1101 and followed by a series numbered MR 88, MR 92. MR 93, MR 95, MR 99 and MR loO. were submitted by a team working in Amsterdam, consisting first of A. van Wijngaarden 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 audiences and the reactions of the students influenced the succeeding versions. The final version. MR 101 [11]. was adopted by the Working Group on December 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 1121, and translations have been made into Russian 113], into German [14], into French [I5 J. and into Bulgarian [16]. An .. Informal 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 wholehearted 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 Garwick, Jack Merner. Peter Ingerman and Manfred Paul for [1]. the Brussels group consisting of M. Sintzoff. P. Branquart. J. Lewi and P. Wodon for numerous brainstorms, A.J.M. van Gils of Apeldoorn. G. Goos and his group at Munich, also for 17 J, G.S. Tseytin of Leningrad, and L.G.L.T. Meertens 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. ALGOL 68 Revised Report 7 Since the publication of the Original Report, much discussion has taken place in the Working Group concerning the further development of the language. This has been influenced by the experience of many people who saw disadvantages in the original proposals and suggested revised or extended features. 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 dialect 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 weaknesses (see in [17 J): Ursula Hill, H. Woessner and H. Scheidig of Munich, who discovered some unpleasant consequences: the contributors to the Rapport d'Evaluation [19 J: 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. 111 J.V. Garwick, J.M. Merner, P.Z. Ingerman and M. Paul, Report of the ALGOL-X - 1-0 Subcommittee. WG 2.1 Working Paper. July 1966. [2 J C.A.R. Hoare, Record Handling. WG 2.1 Working Paper, October 1965: also AB.21.3.6, November 1965. [31 P. Naur (Editor), Revised Report on the Algorithmic Language ALGOL 60, Regnecentralen, Copenhagen, 1962, and elsewhere. [41 P. Naur, Proposals for a new language, AB.18.3.9, October 1964. [51 P. Naur, Proposals for introduction on aims, WG 2.1 Working Paper. October 1965. [61 G. Seegmueller, A proposal for a basis for a Report on a Successor to ALGOL 60, Bavarian Acad. Sci., Munich, October 1965. [71 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 Language, Mathematisch Centrum, Amsterdam, MR 76, October 1965. lI01 A. van Wijngaarden and B.J. Mailloux, A Draft Proposal for the Algorithmic Language ALGOL X, WG 2.1 Working Paper, October 1966. [ll] 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. [121 idem, Numerische Mathematik, Vol. 14, pp. 79-218, 1969. 8 van Wijngaarden, et al. [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 La. Kerner, Akademie-Verlag, Berlin, 1972. [15] Definition du Langage Algorithmique ALGOL 68, translation into French by J. Buffet, P. Arnal, A. Quere (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 LF.I.P. working conference held in Munich in 1970), North Holland Publishing Company, 1971. [I8] 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 ALGOL 68, Revue d'Informatique et de Recherche Operationelle, B2, Paris, 1970. O. 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. 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 directive of the parent committee, LF.LP. 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 to the Report as become desirable". In deciding to bring forward this Revision 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. d) Although the language as now revised differs in many ways from that defined originally, no attempt has been made to introduce extensive new features and, it is believed, the revised language is still clearly recognizable as "ALGOL 68". The Working Group has decided that this present revision should be "the final definition of the language ALGOL 68", and the hope is expressed that it will be possible for implementations at present in preparation to be brought into line with this standard.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.