10.07.2015 Views

Algol 68 - ACM Digital Library

Algol 68 - ACM Digital Library

Algol 68 - ACM Digital Library

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

12 van Wijngaarden, et al.0.2.3. Dynamic storage allocation in ALGOL <strong>68</strong>Whereas ALGOL 60 (apart from "own dynamic arrays") implies a"stack"-oriented storage-allocation regime, sufficient to cope with objectshaving nested lifetimes (an object created before another object beingguaranteed not to become inaccessible before that second one), ALGOL <strong>68</strong>provides, in addition, the ability to create and manipulate objects whoselifetimes are not so restricted. This ability implies the use of an additionalarea of storage, the "heap", in which garbage-collection techniques mustbe used.0.2.4. Collateral elaboration in ALGOL <strong>68</strong>Whereas, in ALGOL 60, statements are "executed consecutively", inALGOL <strong>68</strong>, phrases are "elaborated serially" or "collaterally". This latterfacility is conducive to more efficient object programs under manycircumstances, since it allows discretion to the implementer to choose, inmany cases, the order of elaboration of certain constructs or even, insome cases, whether they are to be elaborated at all. Thus the user whoexpects his "side effects" to take place in any well determined manner willreceive no support from this Report. Facilities for parallel programming,though restricted to the essentials in view of the none-too-advanced stateof the art, have been introduced.0.2.5. Standard declarations in ALGOL <strong>68</strong>The ALGOL 60 standard functions are all included in ALGOL <strong>68</strong> alongwith many other standard declarations. Amongst these are "environmentenquiries", which make it possible to determine certain properties of animplementation, and "transput" declarations, which make it possible, atrun time, to obtain data from and to deliver results to external media.0.2.6. Some particular constructions in ALGOL <strong>68</strong>a) The ALGOL 60 concepts of block, compound statement andparenthesized expression are unified in ALGOL <strong>68</strong> into the serial-clause. Aserial-clause may be an expression and yield a value. Similarly, theALGOL <strong>68</strong> assignation, which is a generalization of the ALGOL 60assignment statement, may be an expression and, as such, also yield avalue.b) The ALGOL 60 concept of subscripting is generalized to ..le ALGOL<strong>68</strong> concept of "indexing", which allows the selection not only ,ff '~ singleelement of an array but also of subarrays with the same or any smallerdimensionality and with possibly altered bounds.c) ALGOL <strong>68</strong> provides row.displays and structure-displays, whichserve to compose the multiple and structured values mentioned in 0.2.1.cfrom other, simpler, values.t'il.ALtULd M lX~Vl~etl lX~lJOl-td) The ALGOL 60 for statement is modified into a more concise andefficient loop-clause.e) The ALGOL 60 conditional expression and conditional statement,unified into a conditional-clause, are improved by requiring them to endwith a closing symbol whereby the two alternative clauses admit the samesyntactic possibilities. Moreover, the conditional-clause is generalized intoa case-clause, which allows the efficient selection from an arbitrarynumber of clauses depending on the value of an integral-expression, and aconformity-clause, which allows a selection depending upon the actualmode of a value.f) Some less successful ALGOL 60 concepts, such as own quantitiesand integer labels, have not been included in ALGOL <strong>68</strong>, and someconcepts, like designational expressions and switches, do not appear assuch in ALGOL <strong>68</strong> but their expressive power is included in other, moregeneral, constructions.0.3. Comparison with the language defined in 19<strong>68</strong>The more significant changes to the language are indicated in thesections which follow. The revised language will be described in a newedition of the "Informal Introduction to ALGOL <strong>68</strong>" by C.H. Lindsey andS.G. van der Meulen, which accompanied the original Report.0.3.1. Casts and routine textsRoutines without parameters used to be constructed out of a cast inwhich the cast-of-symbol C) appeared. This construct is now one of theforms of the new routine-text, which provides for procedures both with andwithout parameters. A new form of the cast has been provided which maybe used in contexts previously not possible. Moreover, both void-casts andprocedure-PARAMETY-yieiding-void-routine-texts must now contain anexplicit void-symbol.0.3.2. Extended rangesThe new range which is established by the enquiry-clause of a choiceclause(which encompasses the old conditional- and case-clauses) or of awhile.part now extends into the controlled serial-clause or do-part.0.3.3. Conformity clausesThe conformity-relation and the case-conformity which was obtained byextension from it are now replaced by a new conformity-clause, which is afurther example of the choice-clause mentioned above.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!