DRAFT REPORT ON THE ALGORITHMIC LANGUAGE ALGOL 68

A. VAN WIJNGAARDEN (EDITOR). BJ.MAILLOUX. J.EL.PECK AND CKA. KOSTER

COMMISSIONED BY WORKING GROUP 2.1 ON ALGOL OF THE INTERNATIONAL FEDERATION FOR INFORMATION PROCESSING SUPPLEMENT TO ALGOL BULLETIN 26

MATHEMATISCH CENTRUM MR 93 SECOND PRINTING. MARCH 1988

Contents

Header pages 
 

PP. Provisional Prologue 
 PP.1.  History of the Draft Report
 PP.2.  Membership of the Working Group
 PP.3.  Distribution of the Draft Report
 PP.4.  References

 O. Introduction
  O.1.  Aims and principles of design
   0.1.1.  Completeness and clarity of description.  
   0.1.2.  Orthogonal design.  
   0.1.3.  Security.  
   0.1.4.  Efficiency.  
    0.1.4.1.  Static mode checking.  
    0.1.4.2.  Independent compilation.  
    0.1.4.3.  Loop optimization"
  0.2.  Comparison with ALGOL 60 
  0.2.1.  Values in ALGOL 68.  
  0.2.2.  Declarations in ALGOL 68.
  0.2.3.  Pynamic storage allocation in ALGOL 68. 
  0.2.4.  Collateral elaboration in ALGoL 68.
  0.2.5.  Standard declarations in ALGOL 68.  
  0.2.6.  Some particular constructions in ALGOL 68 
  
 1.  Language and metalanguage 
  1.1.  The method of description 
   1.1.1.  The strict, extended and representation languages.
   1.1.2.  The syntax of the strict language.  
   1.1.3.  The syntax of the metalanguage.  
   1.1.4.  The production rules of the metalanguage.  
   1.1.5.  The production rules of the strict language.  
   1.1.6.  The semantics of the strict language.  
   1.1.7.  The extended language.  
   1.1.8.  The representation language
  1.2.  The metaproduction rules 
   1.2.1.  Metaproduction rules of modes.  
   1.2.2.  Metaproduction rules associated with modes. 
   1.2.3.  Metaproduction rules associated with phrases.  
   1.2.4.  Metaproduction rules associated with formulas.  
   1.2.5.  Other metaproduction rules 
  1.3.  Pragmatics 
  
 2.  The computer and the program 
  2.1.  Syntax 
  2.2.  Terminology 
   2.2.1.  Objects.  
   2.2.2.  Relationships.  
   2.2.3.  Values.  
    2.2.3.1.  Plain values.  
    2.2.3.2.  Structured values.  
    2.2.3.3.  Multiple values.
    2.2.3.4.  Routines and formats.
    2.2.3.5.  Names.
   2.2.4. Modes and scopes. 
    2.2.4.1. Modes. 
    2.2.4.2. Scopes, inner and outer scopes. 
   2.2.5. Actions, 
  2.3. Semantics 

 3. Basic tokens and general constructions
  3.0. Syntax 
   3.0.1. Introduction. 
   3.0.2. Letter tokens. 
   3.0.3. Denotation tokens. 
   3.0.4. Action tokens. 
   3.0.5. Declaration tokens. 
   3.0.6. Syntactic tokens.
   3.0.7. Sequencing tokens. 
   3.0.8. Hip tokens 
   3.0.9. Extra tokens and comments.
  3.1. Symbols 
   3.1.1. Representations. 
   3.1.2. Remarks 
   
 4. Identification and context conditions
  4.1. Identifiers 
   4.1.1. Syntax. 
   4.1.2. Identification of identifiers 
  4.2. Indications 
   4.2.1. Syntax. 
   4.2.2. Identification of indications 
  4.3. Operators 
   4.3.1. Syntax.
   4.3.2. Identification of operators 
  4.4. Context conditions
   4.4.1. The identification condition. 
   4.4.2. The mode conditions. 
   4.4.3. The uniqueness conditions
   
 5. Denotations 
  5.1. Plain denotations 
   5.1.1. Integral denotations.
   5.1.2. Real denotations. 
   5.1.3. Boolean denotations. 
  5.2. Row of boolean denotations 
  5.3. Row of character denotations 
  5.4. Routine denotations 
  5.5. Format denotations 
   5.5.1. Syntax. 
    5.5.1.1. Integral patterns. 
    5.5.1.2. Real patterns. 
    5.5.1.3. Boolean patterns.. 
    5.5.1.4. Complex patterns. 
    5.5.1.5. String patterns. 
    5.5.1.6. Transformats. 
   5.5.2. Semantics 
    
 6. Phrases
  6.1. Serial phrases
  6.2. Unitary statements
  6.3. Collateral phrases
  6.4. Closed phrases 
  6.5. Conditional clauses 
  
 7. Unitary Declarations
  7.1. Declarers 
  7.2. Mode declarations 
  7.3. Priority declarations 
  7.4. Identity declarations 
  7.5. Operation declarations
  
 8. Unitary expressions 
  8.1. Formulas 
  8.2. Coercends 
   8.2.1. Unaccompanied calls.
   8.2.2. Expressed coercends 
   8.2.3. Depressed coercends.
   8.2.4. United coercends
   8.2.5. Widened coercends. 
   8.2.6. Arrayed coercends.
  8.3. Primaries
  8.4. Slices
  8.5.>/a> Generators
  8.6. Field selections
  8.7. Accompanied calls
  8.8. Assignations
  8.9. Conformity relations
  8.10. Identity relations
  
  
 9. Extensions 
  9.1. Comments
  9.2. Contracted declarations
  9.3. Repetitive statements
  9.4. Contracted conditional clauses 
  9.5. Complex values 

 10. Standard declarations 
    10.1.  Environment enquiries
    10.2.  Standard priorities and operations
     10.2.0. Standard priorities.
     10.2.1. qperations on boolean operands.
     10.2.2. Operations on integral operands.
     10.2.3. Operations on real operands.
     10.2.4. Operations on arithmetic operands. 
     10.2.5. Complex structures and associated operations. 
     10.2.6. Bit rows and associated operations. 
     10.2.7. Operations on character operands. 
     10.2.8. String mode and associated operations. 
     10.2.9. Operations combined with assignations
   10.3. Standard mathematical constants and functions
   10.4. Synchronization operations
   10.5. Transput declarations
    10.5.0. Transput modes and straightening.
     10.5.0.1. Transput modes. 
     10.5.0.2. Straightening. 
    10.5.1. Channels and files. 
     10.5.1.1. Channels. 
     10.5.1.2. Files. 
    10.5.2. Formatless output. 
    10.5.3. Formatless input. 
    10.5.4. Formatted output. 
    10.5.5. Formatted input. 
    10.5.6. Binary output. 
    10.5.7. Binary input. 
    
    
 11. Examples
  11.1. Complex square root
  11.2. Innerproduct 1
  11.3. Innerproduct 2
  11.4. Innerproduct 3
  11.5. Largest element 
  11.6. Euler sumation 
  11.7. The norm of a vector
  11.8. Determinant of a matrix 
  11.9. Greatest common divisor
  11.10. Continued fraction
  11.11. Formula manipulation
  11.12. Information retrieval 
    
 12. Glossary

 EE. Ephemeral Epuogue
  EE.1. Errata EE.
   EE 1.1. Syntax. 
   EE.1.2. Representations. 
   EE.1.3. Semantics
 EE.2. Correspondence with the Editor 
   EE.2.1. Example of a letter to the Editor. 
   EE.2.2. Reply by the Editor to the letter in EE.2.1. 
   EE.2.3. Second example of a letter to the Editor. 
   EE.2.4. Reply option by the Editor to the letter in EE.2.3. 
   EE.2.5. Third example of a letter to the Editor. 
   EE.2.6. Rely by the Editor to the letter in EE.2.5

The Mathematical Centre, founded the 11th of February 1946, is a non - profit institution aiming at the promotion of pure mathematica and its applications. and is sponsored by the Netherlands Government through the Netherlands Organization for the Advancement of Pure Research (Z.W.O.) and the Central Organization for Applied Scientific Research in the Netherlands (T.N.O.). by the Municipality of Amsterdam and by several industries. .

Printed at the Mathematical Centre at Amsterdam.49,2nd Boerhaavestraat. The Netherlands.