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...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

van wljngaaraen, et al.was not so. Therefore, it has been decided to remove all infinities from theprocess of producing a finite program and, indeed, this can now be done ina finite number of moves.b) A mode, essentially, has to represent a potentially infinite tree. Todescribe it as a protonotion of finite length requires the use of markers{'MU definition's} and pointers back to those markers {'MU application's}within the protonotion. However, a given infinite tree can be "spelled" inmany ways by this method, and therefore a mode becomes an equivalenceclass comprised of all those equivalent spellings of that tree. Theequivalence is defined in the syntax using the predicates mentionedearlier.0.4.5. TranslationsALGOL <strong>68</strong> Revised Report 17The original Report has been translated into various natural languages.The translators were not always able to adhere strictly to the descriptionalmethod, and so the opportunity has been taken to define more clearly andmore liberally certain descriptional features which caused difficulties (see1.1.5).{True wisdom knows it must comprisesome nonsense as a compromise,lest fools should fail to find it wise.Grooks,Piet Hein.}0.4.3. ExtensionsThe need for many of the extensions given in the original Report hadbeen removed by language changes. Some of the remainder had been aconsiderable source of confusion and surprises. The opportunity hastherefore been taken to remove the extension as a descriptionalmechanism, all the former extensions now being specified directly in thesyntax.0.4.4. Semanticsa) In order to remove some rather repetitious phrases from thesemantics, certain technical terms have been revised and othersintroduced. The grammar, instead of producing a terminal productiondirectly, now does so by way of a production tree. The semantics isexplained in terms of production trees. Paran'otions, which designateconstructs, may now contain metanotions and "hypernotions" have beenintroduced in order to designate protonotions.b) A model of the hypothetical computer much more closely related toa real one has been introduced. The elaboration of each construct is nowpresumed to take place in an "environ" and, when a new range is entered(and, in particular, when a routine is called), a new "locale" is added tothe environ. The locale corresponds to the new range and, if recursiveprocedure calls arise, then there exist many locales corresponding to onesame routine. This supersedes the method of "textual substitution" usedbefore, and one consequence of this is that the concept of "protection" isno longer required.c) The concept of an "instance" of a value is no longer used. Thissimplifies certain portions of the semantics where, formerly, a "newinstance" had to be taken, the effects of which were not always clear tosee.1. Language and metalanguage1.1. The method of description1.1.1. IntroductionPARTIPreliminary definitionsa) ALGOL <strong>68</strong> is a language in which algorithms may be formulatedfor computers, i.e., for automata or for human beings. It is defined by thisReport in four stages, the "syntax" {b}, the "semantics" {c}, the"representations" {d} and the "standard environment" {e}.b) The syntax is a mechanism whereby all the constructs of thelanguage may be produced. This mechanism proceeds as follows:(i) A set of "hyper-rules" and a set of "metaproduction rules'" are given{1.1.3.4, 1.1.3.3}, from which "production rules" may be derived:(ii) A "construct in the strict language" is a "production tree" {1.1.3.2.f}which may be produced by the application of a subset of thoseproduction rules; this production tree contains static information {i.e..information known, at "compile time"} concerning that construct: it iscomposed of a hierarchy of descendent production trees, terminating atthe lowest level in the "symbols"; with each production tree isassociated a "nest" of properties, declared in the levels above, which ispassed on to the nests of its descendents;Off) A "program in the strict language" is a production tree for the notion'program' {2.2.1.a}. It must also satisfy the "environment condition"{10.1.2}.

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

Saved successfully!

Ooh no, something went wrong!