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.

36van Wijngaarden, et al.ALGOL <strong>68</strong> Revised Report 372.1. Terminology2.1.1. Objects{"When I use a word," Humpty Dumpty said, in rather ascornful tone, "it means just what I choose it to mean -neither more nor less."Through the Looking-glass,Lewis Carroll.}An "object" is a construct {1.1.3.2.e}, a "value" {2.1.1.l.a},{2.1.1.l.b}, an "environ" {2.1.1.1.c} or a "scene" {2.1.1.1.d}.a "locale"{Constructs may be classified as "external objects", since theycorrespond to the text of the program, which, in a more realisticcomputer, would be compiled into some internal form in which it couldoperate upon the "internal objects", namely the values, the locales, theenvirons and the scenes. However, the hypothetical computer has no needof a compilation phase, it being presumed able to examine the programand all of its descendent constructs at the same time as it is manipulatingthe internal objects.}2.1.1.1. Values, locales, environs and scenesa) A "value" is a "plain value" {2.1.3.1}, a "name" {2.1.3.2}, a "stowedvalue" (i.e., a "structured value" {2.1.3.3} or a "multiple value" {2.1.3.4}) ora "routine" {2.1.3.5}.{For example, a real number is a plain value. A special font is used forvalues appearing in the text of this Report, thus: 3.14, true. This is not tobe confused with the italic and bold fonts used for constructs. This samespecial font is also used for letters designating such things as constructsand protonotions.}b) A "locale" {is an internal object which} corresponds to some'DECSETY LABSETY" {1.2.3.C,I}. A "vacant locale" is one for which that'DECSETY LABSETY" is 'EMPTY'.{Each 'QUALITY TAX' (4.8A.F,G) enveloped by that "I)ECSET~LABSETY" corresponds to a QllALIT'¥-defining-indicator-with-TAX (i.e., toan identifier, operator or mode-indication) declared in the construct whoseelaboration caused that locale to be created. Such a 'QIiAIA'I'~ TAX' maybe made to "access" a value or a scene "inside" that locale (2.1.2.c).A locale may be thought of as a number of storage cells, into whichsuch accessed objects are placed.}{The terminal metaproductions of the metanotions "I)EC", "l.AIt" and"FIELD" (or of the more frequently used "PtlOP", which includes them all)are all of the form "QUALITY' TAX'. These "properties" are used in thesyntax and semantics concerned with nests and locales in order toassociate, in a particular situation, some quality with that 'TAX'.}c) An "environ" is either empty, or is composed of an environ and alocale.{Hence, each environ is derived from a series of other environs,stemming ultimately from the empty "primal environ" in which theprogram is elaborated (2.2.2.a).}d) A "scene" S is an object which is composed of a construct C{1.1.3.2.e} and an environ E. C is said to be the construct, and E theenviron, "of" S.{Scenes may be accessed inside locales (2.1.2.c) by "LAB's or "DEC'sarising from label.identifiers or from mode-indications, and they may alsobe values (2.1.3.5).}2.1.1.2. Modes{Each value has an attribute, termed its "mode", which defines howthat value relates to other values and which actions may be applied to it.This attribute is described, or "spelled", by means of some "MOll}'(I.2.1.R) (thus there is a mode spelled "real', and there is a mode spelled'structured with real field letter r letter e real field letter i letter mmode'). Since it is intended that the modes specified by the modeindicationsa and b inmode a = struct (rata b),mode b = struct (ref struct (rat b b) b)should in fact be the same mode, it is necessary that both the "MOLD''mui definition of structured with reference to mui applicationfield letter b mode'and the 'MOll)''muii definition of structured with reference to structured withreference to muii application field letter b modefield letter b mode'(and indeed many others) should be alternative spellings of that samemode. Similarly, the mode specified by the declarer union (int, real) maybe spelled as either *union of integral real mode" or "union of real integralmode'. All those 'MOlD's which are spellings of one same mode are said tobe "equivalent to" one another (a).Certain 'MOII)'s, such as 'reference to muiii application', "reference tomuiiii definition of reference to muiiii application', 'union of real referenceto real mode', and 'structured with integral field letter a real field letter amode', are ill formed (7A, 4.7.1.f, 4.8.1.c) and do not spell any mode.Although for most practical purposes a "mode" can be regarded assimply a 'MOll)', its rigorous definition therefore involves the whole classof 'MOlD's, equivalent to each other, any of which could describe it.}a) 'MOII)l' {I.2.1.R} is "equivalent to" 'MOIl)2" if the predicate "whereMOII)I equivalent MOIl)2" {7.3.1.a} holds {1.3.2}.{A well formed "MOll)" is always equivalent to itself: "union of inWgralreal mode" is equivalent to 'union of real integral mode'.}

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

Saved successfully!

Ooh no, something went wrong!