126 van Wijngaarden, et al.b) The constituent standard-prelude of all program-texts is thatstandard-prelude whose representation is obtained {10.1.3} from the formsgiven in sections 10.2 and 10.3.c) The constituent library-prelude of a program-text is not specified inthis Report {but must be specified for each implementation: the syntax of"program text' ensures that a declaration contained in a library-preludemay not contradict any declaration contained in the standard-prelude}.d) The constituent system-prelude (system-task-list) of all programtextsis that system-prelude (system-task-list) whose representation isobtained from the forms given in section 10.4, with the possible addition ofother forms not specified in this Report {but to be specified to suit theoperating environTmnt of each implementation}.JLe) Each constituent particular-prelude (particular-postlude) of allprogram-texts is that particular-prelude (particular-postlude) whoserepresentation is obtained from the forms given in section 10.5, with thepossible addition of other forms not specified in this Report {but to bespecified for each implementation}.10.1.3. The method of description of the standard environmentA representation of an EXTERNAI,-prelude, system-task or particularpostludeis obtained by altering each form in the relevant sections of thischapter in the following steps:Step 1: If a given form F begins with op {the operator-symbol} followed byone of the marks P, Q, R or E, then F is replaced by a number of newforms each of which is a copy of F in which that mark {following theop} is (all other occurrences in F of that mark are) replaced, in eachrespective new form, by:Case A: The mark is P:• -, +, '~x,,:~ or I(-, +, x or/);Case B: The mark is Q:• ~minusab, -:=~, 1tplusab, +:=~, ~timesab, x:=,,: =~" ordivab, / : =(-:=, +:=, x:= or/:=):Case C: The mark is R:• ~=, ge~, or~>, gt~();Case D: The mark is E:• ~L=,eq~ or ~,/=,ne~(= or ~):Step 2: If, in some form, as possibly made in the step above, .~ occursfollowed by an INDICATOR (a field-selector) I, then that occurrence ofALGOL <strong>68</strong> Revised Report 127.~ is deleted and each INDICATOR (field-selector) akin {1.1.3.2.k} to Icontained in any form is replaced by a copy of one same INDICATOR(field-selector) which does not occur elsewhere in the program andStep 2 is taken again;Step 3: If a given form F, as possibly modified or made in the steps above,beg!ns with op {the operator-symbol} followed by a chain of TAOsymbolsseparated by and-also-symbols, the chain being enclosedbetween ~ and ~., then F is replaced by a number of different"versions" of that form each of which is a copy of F in which thatchain, together with its enclosing ¢ and t", has been replaced by one ofthose TAO-symbois {; however, an implementation is not, obliged toprovide more than one such version (9.4.b)};Step 4: If, in a given form, as possibly modified or made in the stepsabove, there occurs a sequence S of symbols enclosed between ~ andand if, in that S, L int,~L real, L compl, /L bits or L bytes occurs, then Sis replaced by a chain of a sufficient number of sequences separated byand-also-symbols, the n-th of which is a copy of S in which copy eachoccurrence of L (L, K, 8) is replaced by (n - 1) times long (long, leng,shorten), followed by an and.also-symbol and a further chain of asufficient number of sequences separated by and-also-symbols, the m-thof which is a copy of S in which copy each occurrence of L (L, K, S)has been replaced by m times short (short shorten, leng): the ~ andenclosing that S are then deleted;Step 5: If, in a given form F, as possibly modified or made in the stepsabove, Lint (L real, L compl, L bits, L bytes) occurs, then F isreplaced by a sequence of a sufficient number of new forms, the n-th ofwhich is a copy of F in which copy each occurrence of L (L, K, S) isreplaced by (n- 1) times long (long, leng, shorten), and eachoccurrence of Iong L (long L) by n times long (long), followed by afurther sequence of a sufficient number of new forms, the m-th ofwhich is a copy of F in which copy each occurrence of L (L, K, S) isreplaced by m times short (short, shorten, leng), and each occurrenceof IongL (longL) by (m - 1) times short (short); ]Step 6: Each occurrence of F (PRIM) in any form, as possibly modifiedor made in the steps above, is replaced by a representation of a letter.aleph-symbol (primal-symbol) {9.4.a};Step 7: If a sequence of representations beginning with and ending with ¢occurs in any form, as possibly modified or made in the steps above,then this sequence, which is termed a "pseudo-comment", is replacedby a representation of a declarer or closed-clause suggested by thesequence;
128 van Wijngaarden, et al.Step 8: If, in any form, as possibly modified or made in the steps above, aroutine-text occurs whose calling involves the manipulation of realnumbers, then this routine-text may be replaced by any other routinetextwhose calling has approximately the same effect {: the degree ofapproximation is left undefined in this Report (see also 2.1.3.1.e)}:Step 9: In the case of an EXTERNAL-prelude, a form consisting of a skipsymbolfollowed by a go-on.symbol {skip;} is added at the end.{The term "sufficient number", as used in Steps 4 and 5 above, impliesthat no intended particular-program should have a different meaning orfail to be produced by the syntax solely on account of an insufficiency ofthat number.}Wherever {in the transput declarations} the representation lo (\, _1_)occurs within a character-denotation or string-denotation, it is to beinterpreted as the representation of the string-item {8.1.4.1.b} used toindicate "times ten to the power" (an alternative form {, if any,} of "timesten to the power", "plus i times") on external media. {Clearly, theserepresentations have been chosen because of their similarity to those ofthe times-ten-to-the-power-symboi (9.4.1.b) and the plus-i-times-symbol(9.4.1.c), but, on media on which these characters are not available, otherstring-items must be chosen (and the letter-e-symbol and the letter-isymbolare obvious candidates).}{The declarations in this chapter are intended to describe their effectclearly. The effect may very well be obtained by a more efficient method.}10.2. The standard prelude{The declarations of the standard-prelude comprise "environmentenquiries", which supply information concerning a specific property of theimplementation (2.2.2.c), "standard modes", "standard operators andfunctions", "synchronization operations" and "transput declarations"(which are given in section 10.3).}10.2.1. Environment enquiriesa) int int lengths = c 1 plus the number of extra lengths of integers{2.1.3.1.d} c ;b) int int shorths = c 1 plus the number of extra shorths of integers{2.1.3.1.d} c ;c) L int L max int = c the largest L integral value {2.2.2.b} c;d) int real lengths = c I plus the number of extra lengths of realnumbers {2.1.3.1.d} c ;e) int realshorths = c I plus the number of extra shorths of realnumbers {2.1.3.1.d} c ;f)g)h)i)J)k)l)m)n)o)P)q)r)s)t)ALGOL <strong>68</strong> Revised Report 129L maiL max real= c the largest L real value {2.2.2.b} c;L real L small real = c the smallest L real value such that both L 1 +L small real > L 1 and L 1 - L small real < L 1 {2.2.2.b} c ;int bits lengths = c I plus the number of extra widths {j} of bits c ;int bits shorths = c I plus the number of extra shorths {j} of bits c ;int L bits width = c the number of elements in L bits; see L bits{10.2.2.g}; this number increases (decreases) with the "size", i.e.,the number of 'long's (minus the number of 'short's) of which 'L'is composed, until a certain size is reached, viz., "the number ofextra widths" (minus "the number of extra shorths") of bits, afterwhich it is constant c ;int bytes lengths = c I plus the number of extra widths {m} of bytes c ;int bytes shorths = c I plus the number of extra shorths {m} ofbytes c;int L bytes width = c the number of elements in L bytes; see L bytes{10.2.2.h}; this number increases (decreases) with the "size", i.e.,the number of 'long's (minus the number of 'short's) of which 'L'is composed, until a certain size is reached, viz., "the number ofextra widths" (minus "the number of extra shorths") of bytes, afterwhich it is constant c;op abs = (char a) int : c the integral equivalent {2.1.3.1.g} of thecharacter 'a' c ;op rapt= (int a) char : c that character 'x', if it exists, for which absx=ac;intmax abs char= c the largest integral equivalent {2.1.3.1.g} of acharacter c ;char null character = c some character c ;char flip = c the character used to represent 'true' during transput{10.3.3.1.a, 10.3.3.2.a} c ;char flop = c the character used to represent 'false' during transput c ;char errorchar= c the character used to represent unconvertiblearithmetic values {10.3.2.l.b,c,d,e,f} during transput c ;u) char blank = "._";10.2.2. Standard modesa)b)mode void = c an actual-declarer specifying the mode 'void' c k\mode boo/= c an actual-declarer specifying the mode 'boolean' c;c) mode LInt = c an actual-declarer specifying the mode 'L integral' c ;
- 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 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 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