. . . . . . . 4 " ' 0 . . . . . . . ' . . . . .e) The semantics ascribes a "meaning" {2.1.4.1.a} to each construct{i.e., to each production tree} by defining the effect (which may, however,be "undefined") of its "elaboration" {2.1.4.1}. This proceeds as follows:(i) A dynamic {i.e., run-time} tree of active "actions" is set up {2.1.4};typically, an action is the elaboration of .sgme production tree T in an"environ" consistent with the nest of T, and it may bring about theelaboration of descendents of T in suitable newly created descendentenvirons;(ii) The meaning of a program in the strict language is the effect of itselaboration in the empty "primal environ".d) A program in the strict language must be represented in some"representation language" {9.3.a} chosen by the implementer. In mostcases this will be the official "referenee language".(i) A program in a representation language is obtained by replacing thesymbols of a program in the strict language by certain typographicalmarks {9.3}.(ii) Even the reference language allows considerable discretion to theimplementer {9.4.a,b,c}. A restricted form of the reference language inwhich such freedom has not been exercised may be termed the"canonical form" of the language, and it is expected that this form willbe used in algorithms intended for publication.(iii) The meaning of a program in a representation language is the sameas that of the program {in the strict language} from which it wasobtained.e) An algorithm is expressed by means of a particular-program,which is considered to be embedded, together with the standardenvironment, in a program-text {10.1.l.a}. The meaning of a particularprogram{in the strict or a representation language} is the meaning of theprogram "akin" to that program-text {10.1.2.a}.1.1.2. Pragmaties{Merely corroborative detail, intended togive artistic verisimilitude to an otherwisebald and unconvincing narrative.Mikado,W.S. Gilbert.}Scattered throughout this Report are "pragmatic" remarks includedbetween the braces "{" and "}". These are not part of the definition of thelanguage but serve to help the reader to understand the intentions andimplications of the definitions and to find corresponding sections or rules.{Some of the pragmatic remarks contain examples written in thereference language. In these examples, applied-indicators oeeur out ofcontext from their defining-indicators. Unless otherwise speeified, theseoccurrenees identify those in the standard- or particular-preludes and theparticular.postlude (10.2, 10.3, 10.5) (e.g., see 10.2.3.12.a for pi, 10.5.l.b forrandom and 10.5.2.a for stop), or those in:int i, j, k, m, n; real a, b, x, y; bool p, q, overflow; char c; format f;bytes r; string s; bits t; compl w, z; ref real xx, yy: union (int, real) uir;proc void task1, task2;[1 : n] roalxl, yl; flex [1 : n] realal; I1 : m, 1 : n I realx2;[1: n,l : n] realy2; [l:nJ intil; I1: m, 1: n J inti2;[1 : n] complzl;proc x or y = ref real : if random < .5 then x else y fi;proc ncos = (int i) real : cos (2 × pi x i / n);proc nsin = (int i) real : sin (2 x pi x i / n);proc finish = void : go to stop;mode book = struct (string text, ref book next); book draft;princeton: grenoble: st pierre de chartreuse: kootwijk: warsaw:zandvoort: amsterdam: tirrenia: north berwick: munich:finish.}1.1.3. The syntax of the strict language1.1.3.1. Protonotionsa) In the definition of the syntax of the strict language, a formalgrammar is used in which certain syntactic marks appear. These may beclassified as follows:(i) "small syntactic marks", written, in this Report, as"a", "b", "c", "fl", "e", "f", "g", "h", 'T', "j", "k", 'T', "m", "n", "o", "p","q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "C, ")":(ii) "large syntactic marks", written, in this Report, as"A", "B", "C", "D", "E", "F", "G", "H", 'T', "J", "K", "I.", "M", "N", "()","P", "Q", "R", "S", "T", "U", "V", "~'", "X", "~", "Z", "0", "1", "2", "3","4", "5", "6", "7", "8", "9":(iii) "other syntactic marks", written, in this Report, as.... ("point"), "," ("comma"), ":" Ceolon"), ";" ("semicolon"),..... ("apostrophe"), "-" ("hyphen") and ..... ("asterisk").{Note that these marks are in another type font than that of the marks inthis sentence.}b) A "protonotion" is a possibly empty sequence of small syntacticmarks.c) A "notion" is a {nonempty} protonotion for which a production rulecan be derived {1.1.3.2.a, 1.1.3.4.d}.d) A "metanotion" is a {nonempty} sequenee of large syntactic marksfor which a metaproduction rule is given or created {1.1.3.3.a}.e) A "hypernotion" is a possibly empty sequence each of whoseelements either is a small syntactic mark or is a metanotion.
20 van Wijngaarden, et al.{Thus the class of protonotions (b) is a subclass of the class ofhypernotions. Hypernotions are used in metaproduction rules (1.1.3.3), inhyper-rules (1.1.3.4), as paranotions (1.1.4.2) and, in their own right, to"designate" certain classes of protonotions (1.1.4.1) .}{A "paranotion" is a hypernotion to which certain special conventionsand interpretations apply, as detailed in 1.1.4.2.}f) A "symbol" is a protonotion ending with 'symbol'. {Note that theparanotion symbol (9.1.1.h) designates a particular occurrence of such aprotonotion.}{Examples:b) 'variable point"c) 'variable point numeral' (8.1.2.1.b)d) "INTREAL" (1.2.1.C)e) 'reference to INTREAI.'f) 'letter a symbol' .Note that the protonotion "twas brillig and the slithy roves' is neither asymbol nor a notion, in that it does not end with "symbol' and noproduction rule can be derived for it. Likewise, "I.E~IS" and "CARR()I.I."are not metanotions in that no metaproduction rules are given for them.}g) In order to distinguish the various usages in the text of this Reportof the terms defined above, the following conventions are adopted:(i) No distinguishing marks {quotes, apostrophes or hyphens} are used inproduction rules, metaproduction rules or hyper-rules;(ii) Metanotions, and hypernotions which stand for themselves {i.e., whichdo not designate protonotions}, are enclosed in quotes;(iii) Paranotions are not enclosed in anything {but, as an aid to thereader, are provided with hyphens where, otherwise, they would havebeen provided with blanks};(iv) All other hypernotions {including protonotions} not covered above areenclosed in apostrophes {in order to indicate that they designate someprotonotion, as defined in 1.1.4.1.a};(v) Typographical display features, such as blank space, hyphen, andchange to a new line or new page, are of no significance (but see alto9.4.d).{Examples:(i) LEAP :: local ; heap ; primal, is a metaproduction rule:(ii) "INTREAL" is a metanotion and designates nothing but itself:(iii) reference.to-INTREAL-identifier, which is not enclosed in apostrophesbut is provided with hyphens, is a paranotion designating a construct(1.1.4.2.a) ;(iv) 'variable point' is both a hypernotion and a protonotion; regarded asa hypernotion, it designates itself regarded as a protonotion;(v) 'reference to real' means the same as 'referencetoreal'.}1.1.3.2. Production rules and production treesALGOL <strong>68</strong> Revised Report 21a) The {derived} "production rules" {b} of the language are thoseproduction rules which can be derived from the "hyper-rules" {1.1.3.4},together with those specified informally in 8.1.4.1.d and 9.2.1.d.b) A "production rule" consists of the following items, in order:an optional asterisk ;a nonempty protonotion N ;a colon ;a nonempty sequence of "alternatives" separated by semicolons ;a point.It is said to be a production rule "for" {the notion (1.1.3.1.c)} N.{The optional asterisk, if present, signifies that the notion is not used inother production rules, but is provided to facilitate discussion in thesemantics. It also signifies that that notion may be used as an"abstraction" (1.1.4.2.b) of one of its alternatives.}c) An "alternative" is a nonempty sequence of "members" separatedby commas.d) A "member" is either(i) a notion {and may then be said to be productive, or nonterminal},(ii) a symbol {which is terminal},(iii) empty, or(iv) some other protonotion {for which no production rule can be derived},which is then said to be a "blind alley".{For example, the member "reference to real denotation" (derivedfrom the hyper-rule 8.0.l.a) is a blind alley.}{Examples:b) exponent part : times ten to the power choice,power of ten. (8.1.2.1.g) •times ten to the power choice :times ten to the power symbol ;letter e symbol. (8.1.2.1.h)c) times ten to the power choice, power of ten •times ten to the power symbol •letter e symbold) times ten to the power choice •power of ten •times ten to the power symbol *letter e symbol }e) A "construct in the strict language" is any "production tree" {f} thatmay be "produced" from a production rule of the language.f) A "production tree" T for a notion N, which is termed the "original"of T, is "produced" as follows:
- 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 12 and 13: 22 van Wijngaarden, et al.• let P
- Page 14 and 15: 26 van Wijngaarden, et al.{Since so
- 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