46 van Wijngaarden, et al.c) {There are no names whose mode begins with 'transientreference to'.The yield of a transient-reference-to-MODE-FORM is a "transient name"of mode 'reference to MODE', but, there being no transient-reference-to-MODE-declarators in the language (4.6.1), the syntax ensures thattransient names can never be assigned, ascribed or yielded by the callingof a routine.E.g., xx := al [i] is not an assignation because xx is not a reference-totransient-reference.to-real-identifier.Transient names originate from theslicing, multiple selection or rowing of a flexible name.}d) A value of mode M1 is "acceptable to" a mode M2 if(i) M1 is the same as M2, or(ii) M2 is united {a} from M1 {thus the mode specified by union (r~l, Int)accepts values whose mode is that specified by either reel or lot}, or(iii) M2 deflexes {b} to M1 {thus the mode "flexible row of real' (a mode ofwhich there are no values) accepts values such as the yield of theactual-declarer fax [1 : n} foal which is a value of mode "row of real'},or(iv) M1 is some 'reference to MODE' and M2 is "transient reference toMODE' {thus the mode 'transient reference to real' accepts values(such as the yield of al [i]) whose mode is 'reference to real'}.{See 2.1.4.1.b for the acceptability of the yield of a scene.}2.1.4. Actions2.1.4.1. Elaboration{Suit the action to the word, the word tothe action.Hamlet,William Shakespeare.}a) The "elaboration" of certain scenes {those whose constructs aredesignated by certain paranotions} is specified in the sections of thisReport headed "Semantics", which describe the sequence of "actions"which are to be carried out during the elaboration of each such scene.{Examples of actions which may be specified are:• the causing to hold of relationships,• the creation of new names, and• the elaboration of other scenes.]The "meaning" of a scene is the effect of the actions carried out duringits elaboration. Any of these actions or any combination thereof may be.replaced by any action or combination which causes the same effect.b) The elaboration of a scene S may "yield" a value. If the constructof S is a MOID-NOTION, then that value is, unless otherwise specified, [ofsuch a mode that it is} acceptable to {2.1.3.6.d) 'MOID'.{This rule makes it possible, in the semantics, to discuss yields withoutexplicitly prescribing their modes.}ALGOL <strong>68</strong> Revised Report 47c) If the elaboration of some Construct A in some environ E is nototherwise specified in the semantics of this Report, and if B is the onlydirect descendent of A which needs elaboration {see below}, then theelaboration of A in E consists of the elaboration of B in E and the yield, ifany, of A is the yield, if any, of B {; this automatic elaboration is termedthe "pre-elaboration" of A in E}.A construct needs no elaboration if it is invisible {1.1.3.2.h}, if it is asymbol {9.1.1.h}, or if its elaboration is not otherwise specified in thesemantics of this Report and none of its direct descendents needselaboration.[Thus the elaboration of the reference.to.real.closed-clause (3.l.l.a)(x := 3.14) is (and yields the same value as) the elaboration of itsconstituent reference.to-real-serial-clause (3.2.1.a) x := 3.14.]2.1.4.2. Serial and collateral actionsa) An action may be "inseparable", "serial" or "collateral". A serial orcollateral action consists of one or more other actions, termed its "directactions". An inseparable action does not consist of other actions {; whatactions are inseparable is left undefined by this Report}.b) A "descendent action" of another action B is a direct action eitherof B, or of a descendent action of B.c) An action A is the "direct parent" of an action B if B is a directaction {a} of A.d) The direct actions of a serial action S take place one after theother; i.e., the completion 12.1.4.3.c,d} of a direct action of S is followed bythe initiation {2.1.4.3.b,c} of the next direct action, if any, of S. {Theelaboration of a scene, being in general composed of a sequence ofactions, is a serial action.}e) The direct actions of a collateral action are merged in time; i.e.,one of its descendent inseparable actions which, at that moment, is"active" {2.1.4.3.a} is chosen and carried out, upon the completion {2.1.4.3.c}of which another such action is chosen, and so on {until all are completed}.If two actions {collateral with each other} have been said to be"incompatible with" {10.2.4} each other, then [they shall not be merged;i.e.,} no descendent inseparable action of the one shall (then the one {if itis already inseparable} shall not) be chosen if, at that moment, the otheris active and one or more, but not all, of its descendent inseparableactions have already been completed; otherwise, the method of choice isleft undefined in this Report.f) If one or more scenes are to be "elaborated collaterally", then thiselaboration is the collateral action consisting of the {merged} elaborationof those scenes.
48 van Wijngaarden, et al.2.1.4.3. Initiation, completion and terminationa) An action is either "active" or "inactive".An action becomes active when it is "initiated" {b,c} or "resumed" {g}and it becomes inactive when it is "completed" {c,d}, "terminated" {e},"halted" {f} or "interrupted" {h}.b) When a serial action is "initiated", then the first of its directactions is initiated. When a collateral action is "initiated", then all of itsdirect actions are initiated.c) When an inseparable action is "initiated", it may then be carriedout {see 2.1.4.2.e}, whereupon it is "completed".d) A serial action is "completed" when its last direct action has beencompleted. A collateral action is "completed" when all of its direct act i.ushave been completed.e) When an action A {whether serial or collateral] is "terminated.then all of its direct actions {and hence all of its descendent actions} areterminated {whereupon another action may be initiated in its place}.{Termination of an action is brought about by the elaboration of a jump(5.4.4.2) .}f) When an action is "halted", then all of its active direct actions landhence all of its active descendent actions} are halted. {An action may behalted during a "calling" of the routine yielded by the operator down(10.2.4.d), whereupon it may subsequently be resumed during a calling ofthe routine yielded by the operator up (10.2.4.e).}If, at any time, some action is halted and it is not descended from a"process" of a "parallel action" {10.2.4} of whose other process(es) therestill exist descendent active inseparable actions, then the furtherelaboration is undefined. {Thus it is not defined that the elaboration of thecollateral-clause inbegin sema sergei = level O;(par begin (down sergei; print (pokrovsky)), skip end,(read (pokrovsky); up sergei))andwill ever be completed.}g) When an action A is "resumed", then those of its direct actionswhich had been halted, consequent upon the halting of A are resumed.h) An action may be "interrupted" by an event [e.g., "overflow"] notspecified by the semantics of this Report but caused by the computer if ilsALGOL <strong>68</strong> Revised Report 49limitations {2.2.2.b} do not permit satisfactory elaboration. When an acli(mis interrupted, then all of its direct actions, and possibly its direct i)aremalso, are interrupted. {Whether, after an interruption, that action isresumed, some other action is initiated or the elaboration of the programends, is left undefined by this Report.]{The effect of the definitions given above is as follows:During the elaboration of a program (2.2.2.a) the elaboration of itsclosed-clause in the empty primal environ is active. At any given moment.the elaboration of one scene may have called for the elaboration of someother scene or of several other scenes collaterally. If and when theelaboration of that other scene or scenes has been eoml)leted, the nextstep of the elaboration of the original scene is taken, and so on until it. inturn, is completed.It will be seen that all this is analogous to the calling (21' one subroutineby another; upon the completion of the execution of the called subroutim,,the execution of the calling subroutine is continued: the semantic rulesgiven in this Report for the elaboration of the various paranotionscorrespond to the texts of the subroutines; the semantic rules may even.in suitable circumstances, invoke themselves recursively (but with adifferent construct or in a different environ on each occasion).Thus there exists, at each moment, a tree of active actions descended(2.1.4.2.b) from the elaboration of the program.}2.1.5. Abbreviations{In order to avoid some long and turgid I)hrases which would otherwisehave been necessary in the Semantics, certain abbreviations are usedfreely throughout the text of this Report.]a) The phrase "the A of B", where A and B arc paranotions, stands for"the A which is a direct descendent {1.1.3.2.f} of B".{This permits the abbreviation of "direct descendent of" to "of" or "ils",e.g., in the assignation (5.2.l.l.a) i := 1, i is "its" destination (or i is Ill(',or a, destination "of" the assignation i := 1), whereas i ix nol a (le.~tinationof the serial-clause i := 1; j := 2 (although it is a constituent dcstinalion(1.1.4.2.d) of it).}b) The phrase "C in E", where C is a construct and E is an environ.stands for "the scene composed {2.l.l.l.d} of C and E". It is sometinmseven further shortened to just "C" when it is clear which environ is meam.{Since the process of elaboration (2.1.4.l.a) may be al)plied only I[)scenes, this abbreviation appears most frequently in t'ornls such as "A hmpclauseC, in an environ El, is elaborated ... " (3.5.2) and "An assignation Ais elaborated ... " (5.2.1.2.a, where it is tile elaboration of A in anyappropriate environ that is being discussed).}
- 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 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 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