26 van Wijngaarden, et al.{Since some metanotions have an infinite number of terminalmetaproductions, the number of production rules which may be derived isinfinite. The language is, however, so designed that, for the production ofany program of finite length, oply a finite number of those productionrules is needed.}{f) The rules under Syntax are provided with "cross-references" to beinterpreted as follows.Each hypernotion H of a hyperalternative of a hyper-rule A is followedby a reference to those hyper-rules B whose derived production rules arefor notions which could be substituted for that H. Likewise, thehypernotions of each hyper-rule B are followed by a reference back to A.Alternatively, if H is to be replaced by a symbol, then it is followed by areference to its representation in section 9.4.1. Moreover, in some cases, itis more convenient to give a cross-reference to one metaproduction rulerather than to many hyper-rules, and in these cases the missing crossreferenceswill be found in the metaproduction rule.Such a reference is, in principle, the section number followed by aletter indicating the line where the rule or representation appears, withthe following conventions:(i) the references whose section number is that of the section in whichthey appear are given first and their section number is omitted; e.g.,"8.2.1.a" appears as "a" in section "8.2.1";(if) all points and a final 1 are omitted, and 10 appears as A; e.g.,"8.2.1.a" appears as "82a" elsewhere and "10.3.4.1.1.i" appears as"A34 If";(iii) a section number which is the same as that of the precedingreference is omitted; e.g., "82a,82b,82c" appears as "82a,b,c";(iv) the presence of a blind alley derived from that hypernotion isindicated by "-"; e.g., in 8.0.1.a after "MOLD denotation", since "MOLD"may be replaced by, for example, 'reference to real', but "reference toreal denotation' is not a notion.}1.1.4. The semanticsThe "meaning" of programs {2.2.1.a} in the strict language is defined inthe semantics by means of sentences {in somewhat formalized naturallanguage} which specify the "actions" to be carried out during the"elaboration" {2.1.4.1} of those programs. The "meaning" of a program in arepresentation language is the same as the meaning of the program in thestrict language which it represents {9.3}.{The semantics makes extensive use of hypernotions and paranotions inorder to "designate", respectively, protonotions and constructs. The word"designate" should be understood in the sense that the word "flamingo"may "designate" any animal of the family Phoenicopteridae.}1.1.4.1. Hypernotions, designation and envelopmentALGOL <strong>68</strong> Revised Report 27{Hypernotions, when enclosed between apostrophes, are used to"designate" protonotions belonging to certain classes; e.g., 'I,EAP"designates any of the protonotions "local', 'primal' and 'heap'.}a) Hypernotions standing in the text of this Report, except those inhyper-rules {1.1.3.4.b} or metaproduction rules {1.1.3.3.b}, "designate" anyprotonotions which may be consistently substituted {1.1.3.4.e} for them, theconsistent substitution being applied over all the hypernotions contained ineach complete sub-section of the text (a sub-section being one of thelettered sub-divisions, if any, or else the whole, of a numbered section).{Thus "QUALITY TAX' is a hypernotion designating protonotions suchas 'integral letter i', 'real letter x', etc. If, in some particular discussion, itin fact designates 'integral letter i', then all occurrences of "QUALITY" inthat subsection must, over the span of that discussion, designate 'integral'and all occurrences of "TAX" must designate 'letter i'. It may then bededuced from subsection 4.8.2.a that in order, for example, to "ascribe toan integral-defining-indicator-with-letter-i", it is 'integral letter i' that mustbe "made to access V inside the locale".}Occasionally, where the context clearly so demands, consistentsubstitution may be applied over less than a section. {For example, in theintroduction to section 2.1.1.2, there are several occurrences of "'MOLD'",of which two are stated to designate specific (and different) protonotionsspelled out in full, and of which others occur in the plural form "'MOlD's",which is clearly intended to designate a set of different members of theclass of terminal metaproductions of "MOLD".}b) If a protonotion (a hypernotion) P consists of the concatenation ofthe protonotions (hypernotions) A, B and C, where A and G are possiblyempty, then P "contains" B at the position {in P} determined by the lengthof A. {Thus, 'abcdefcdgh' contains 'cd' at its third and seventh positions.}c) A protonotion P1 "envelops" a protonotion P2 as specificallydesignated by a hypernotion H2 if P2, or some equivalent {2.1.1.2.a} of it, iscontained {b} at some position within P1 but not, at that position, withinany different {intermediate} protonotion P3 also contained in P1 such thatH2 could also designate P3.{Thus the "MODE' enveloped by 'reference to real closed clause" is'reference to real' rather than "real'; moreover, the mode (2.1.1.2.b)specified by struct (real a, struct (bool b, char c) d) envelops 'FIELD' justtwice.}1.1.4.2. Paranotions{In order to facilitate discussion, in this Report, of constructs withspecified originals, the concept .of a "paranotion" is introduced. Aparanotion is a noun that designates constructs (1.1.3.2.e): its meaning is
28 van Wijngaarden, et aLALGOL <strong>68</strong> Revised Report29not necessarily that found in a dictionary but can be construed from therules which follow.}a) A "paranotion" P is a hypernotion {not between apostrophes} whichis used, in the text of this Report, to "designate" any construct whoseoriginal O satisfies the following:• P, regarded as a hypernotion {i.e., as if it had been enclosed inapostrophes}, designates {l.l.4.1.a} an "abstraction" {b} of O.{For example, the paranotion "fixed-point-numeral" could designate theconstruct represented by 02, since, had it been in apostrophes, it wouldhave designated an abstraction of the notion 'fixed point numeral', whichis the original of that construct. However, that same representation couldalso be described as a digit-cypher.sequence, and as such it would be adirect descendent of that fixed-point-numeral.}{As an aid to the reader in distinguishing them from otherhypernotions, paranotions are not enclosed between apostrophes and areprovided with hyphens where, otherwise, they would have been providedwith blanks.}The meaning of a paranotion to which the small syntactic mark "s" hasbeen appended is the same as if the letter "s" {which is in the same typefont as the marks in this sentence} had been appended instead. {Thus thefixed-point-numeral 02 may be said to contain two digit-cyphers, ratherthan two digit-cyphers.} Moreover, the "s" may be inserted elsewhere thanat the end if no ambiguity arises {e.g., "sources-for-MOI)lNE" means thesame as "source-for.MOI)lNEs"}.An initial small syntactic mark of a paranotion is often replaced by thecorresponding large syntactic mark {in order to improve readability, as atthe start of a sentence} without change of meaning {: e.g., "Identifier"means the same as "identifier"}.b) A protonotion P2 is an "abstraction" of a protonotion P1 if(i) P2 is an abstraction of a notion whose production rule begins with anasterisk and of which Pl is an alternative{e.g., "trimscript' (5.3.2.1.h) is an abstraction of any of thenotions designated by 'NEST trimmer', 'NEST subscript' and'NEST revised lower bound option'}, or(if) P1 envelops a protonotion ?3 which is designated by one of the"elidible hypernotions" listed in section c below, and ?2 is anabstraction of the protonotion consisting of ?1 without that envelopedP3{e.g., 'choice using boolean start' is an abstraction of the notions'choice using boolean brief start" and 'choice using boolean boldstart' (by elision of a 'STYLE' from 9.1.1.a)}, or(iii) P2 is equivalent to {2.1.1.2.a} Pl{e.g., 'bold begin symbol"symbol'}.is an abstraction of 'bold begin{For an example invoking all three rules, it may be observed that'union of real integral mode defining indicator' is an abstraction of some'union of integral real mode NEST defining identifier with letter a'(4.8.1.a). Note, however, that "choice using union of integral real modebrief start' is not an abstraction of the notion 'choice using union ofintegral real boolean mode brief start', because the 'boolean' that hasapparently been elided is not an enveloped 'MOLD" of that notion.}c) The "elidible hypernotions" mentioned in section b above are thefollowing:"STYLE" • "TALLY" • "LEAP" • "DEFIED" • "VICTAI." •"SORT" • "MOLD" • "NEST" • "REFETY routine" • "label" •"with TAX" • "with DECSETY LABSETY" • "of DECSET'~ I,ABSETY" •"defining LAYER".{Which one of several possible notions or symbols is the original of aconstruct designated by a given paranotion will be apparent from thecontext in which that paranotion appears. For example, when speaking ofthe formal-declarer of an identity-declaration, if the identity-declaration isone whose terminal production (1.1.3.2.f) happens to be rot realx = Ioc real,then the original of that formal-declarer is some notion designated by'formal reference to real NEST declarer'.}{Since a paranotion designates a construct, all technical terms whichare defined for constructs can be used with paranotions without formality.}d) If two paranotions P and Q designate, respectively, two constructsS and T, and if S is a descendent of T, then P is termed a "constituent" ofQ unless there exists some {intermediate construct} U such that(i) S is a descendent of U,(if) U is a descendent of T, and(iii) either P or Q could {equally well} designate U.{Hence a (S1) is a constituent operand of the formula ax(b+2 r (i+j))(T), but b ($2) is not, since it is a descendent of an intermediate formulab+2 I (i+j) (U), which is itself descended from T. Likewise, (b+2 T (i+j))is a constituent closed-clause of the formula T, but the closed-clause (i+j)is not, because it is descended from an intermediate closed-clause.However, (i + j) is a constituent integral-closed.clause of T, because theintermediate closed-clause is, in fact, a real-closed-clause.
- Page 2 and 3: van Wijngaarden, et al.1.1.4.2. Par
- Page 4: Acknowledgements{Habent sua fata li
- Page 8 and 9: 14 van Wijngaarden, et al.0.3.4. Mo
- Page 10 and 11: . . . . . . . 4 " ' 0 . . . . . . .
- Page 12 and 13: 22 van Wijngaarden, et al.• let P
- Page 16 and 17: 30 van Wijngaarden, et aLloperandfo
- Page 18 and 19: 34 van Wijngaarden, et al.j) WHETHE
- Page 20 and 21: 38 van Wijngaarden, et al.A protono
- Page 22 and 23: 42 van Wijngaarden, et al.d) If N i
- Page 24 and 25: 46 van Wijngaarden, et al.c) {There
- Page 26 and 27: 50 van Wijngaarden, et al.c) The ph
- Page 28 and 29: 54 van Wijngaarden, et al.3.1.1. Sy
- Page 30 and 31: 58 van Wijngaarden, et al.where (RO
- Page 32 and 33: 62 van Wijngaarden, et al.1) SOlD N
- Page 34 and 35: 66 van Wijngaarden, et al.ALGOL 68
- Page 36 and 37: 70 van Wijngaarden, et el.For each
- Page 38 and 39: 74 van Wijngaarden, et al.If 'MODE"
- Page 40 and 41: 78 J van Wijngaarden, et al.C) SECO
- Page 42 and 43: 82 van Wijngaarden, et al.ALGOL 68
- Page 44 and 45: 86 van Wijngaarden. et al.ALGOL 68
- Page 46 and 47: 90 van Wijngaarden, et al.5.4.4.1.
- Page 48 and 49: 94van Wijngaarden, et al.ALGOL 68 R
- Page 50 and 51: 98 van Wijngaarden, et al.Assignati
- Page 52 and 53: 102 van Wijngaarden, et at.{A nest,
- Page 54 and 55: 106 van Wijngaarden, et al.'HEAD's
- Page 56 and 57: 110 van Wijngaarden, et al.ALGOL 68
- Page 58 and 59: 114van Wijngaarden, et al.ALGOL 68
- Page 60 and 61: 118 van Wijngaarden, et al.ALGOL 68
- Page 62 and 63: 122 van Wijngaarden, et al.style ii
- Page 64 and 65:
126 van Wijngaarden, et al.b) The c
- Page 66 and 67:
130van Wijngaarden, et al.ALGOL 68
- Page 68 and 69:
134van Wijngaarden, et al.ALGOL 68
- Page 70 and 71:
138d)e)f)g)h)i)J)k)1)m)n)van Wijnga
- Page 72 and 73:
142 van Wijngaarden, et al.physics
- Page 74 and 75:
146 van Wijngaarden, et al.gg) On s
- Page 76 and 77:
150van Wijngaarden, et al.ALGOL 68
- Page 78 and 79:
154/van Wijngaarden, et al.ALGOL 68
- Page 80 and 81:
158 van Wijngaarden, et el.fi;ref p
- Page 82 and 83:
162van Wijngaarden, et al.ALGOL 68
- Page 84 and 85:
166van Wijngaarden, et al.ALGOL 68
- Page 86 and 87:
170/van Wijngaarden, etal.ALGOL 68
- Page 88 and 89:
174J)K)L)M)N)O)P)a)b)c)d)e)van Wijn
- Page 90 and 91:
178/van Wijngaarden, et al.ALGOL 68
- Page 92 and 93:
182 van Wijngaarden, et al.• let
- Page 94 and 95:
186van Wijngaarden, et al./ALGOL 68
- Page 96 and 97:
190 van Wijngaarden, etal.composed
- Page 98 and 99:
194h)i)J)van Wijngaa(rden, et al.pr
- Page 100 and 101:
198 van Wijngaarden, et al.¢ strin
- Page 102 and 103:
202tvan Wijngaarden, et al.ALGOL 68
- Page 104 and 105:
206 van Wijngaa~den. et al.10.3.6.1
- Page 106 and 107:
210 van Wijngaarden, et al.!ALGOL 6
- Page 108 and 109:
214 van Wijngaarden, et al.inoperat
- Page 110 and 111:
218fvan Wijngaarden, et al.¢ move
- Page 112 and 113:
222 van Wijngaarden, etaL{overflow}
- Page 114 and 115:
226 van Wijngaarden, et al.ALGOL 68
- Page 116 and 117:
230max int 10.2.1.cmax real 10.2.l.
- Page 118 and 119:
234 van Wijngaarden, et al.ALGOL 68