110 van Wijngaarden, et al.ALGOL <strong>68</strong> Revised ReportIll• let S be the intrinsic value of the NUMERAL of its stagnant-part:• let E be the intrinsic value of the constituent fixed-point-numeral of itsexponent-part;Case A: The constituent plusminus-option of N contains a minus-symbol:• V is the product in the sense of numerical analysis of S and 1/10raised to the power E;Case B: The direct descendent of that plusminus-option contains a plussymbolor is empty:• Y is the product in the sense of numerical analysis of S and 10raised to the power E.8.1.3. Boolean denotations8.1.3.1. Syntaxa) boolean denotation{8Oa} : true{94b} symbol ; false{94b} symbol.{Examples:a) true • false }8.1.3.2. SemanticsThe yield of a boolean-denotation is true (false) if its direct descendentis a true-symbol (false-symbol).8.1.4. Character denotations{Character-denotations consist of a string-item between two quotesymbols,e.g., "a". To indicate a quote, a quote-image-symbol (representedby .... ) is used, e.g., ' ....... . Since the syntax nowhere allows character- orstring-denotations to follow one another, this causes no ambiguity.}8.1.4.1. Syntaxa) character denotation{80a} ..quote{94b} symbol, string item{b}, quote symbol{94b}.b) string item{a,83b} : character glyph{e} ; quote image symbol{94b} ;other string item{d}.c) character glyph{b,92c} : LETTER symbol{94a} ;DIGIT symbol{94b} ; point symbol{94b} ; open symbol{94f} ;close symbol{94f} ; comma symbol{94b} ; space symbol{94b} ;plus symbol{94c} ; minus symbol{94c}.d) A production rule may be added for the notion 'other string item'{b, for which no tiyper-rule is given in this Report} each of whosealternatives is a symbol {l.l.3.1.f} which is different from anyterminal production of 'character glyph" {c} and which is not'quote symbol'.{Examples:a) "a" b) a • .... • ?C) aolO.o(o)o,o o+o-}8.1.4.2. Semanticsa) The yield of a character-denotation is the intrinsic value of thesymbol descended from its string-item.b) The intrinsic value of each distinct symbol descended from a stringitemis a unique character. {Characters have no inherent meaning, except ,insofar as some of them are interpreted in particular ways by the transputdeclarations (10.3). The character-glyphs, which include all the charactersneeded for transput, form a minimum set which all implementations(2.2.2.c) are expected to provide.}8.1.5. Void denotation{A void-denotation may be used to assign a void value to a UNITEDvariable,e.g., union ([ }real, void) u := empty.}8.1.5.1. Syntaxa) void denotation{80a} : empty{94b} symbol.[Example:a) empty }8.1.5.2. SemanticsThe yield of a void-denotation is empty.8.2. Bits denotations8.2.1. SyntaxA) RADIX :: radix two ; radix four ; radix eight ; radix sixteen.a) structured with row of boolean fieldI,ENGTH LENGTHETY letter aleph mode denotation{a,80a} :long{94d} symbol, structured with row of boolean fieldI,ENGTHETY letter aleph mode denotation {a,c}.b) structured with row of boolean fieldSHORTH Stl()RTHETY letter aleph mode denotation{b,80a} :short{94d} symbol, structured with row of boolean fieldSHORTllE'I'~ letter aleph mode denotation{b,c}.c) structured with row of boolean fieldletter aleph mode denotation{a,b,80a} :RAI)lX{d,e,f,g}, letter r symbol{94a}, RAI)IX digit{h,i,j,k} sequence.d) radix two{c,A347b} : digit two{94b} symbol.e) radix four{c,A347b} : digit four{94b} symbol.f) radix eight{c,A347b} : digit eight{94b} symbol.g) radix sixteen{c,A347b} : digit one symbol{94b}, digit six symbol{94b}.h) radix two digit{e,i} : digit zero symbol{94b} ; digit one symbol{94b}.i) radix four digit{c,j} : radix two digit{h} ; digit two symbol{94b} ;digit three symbol{94b}.
112 van Wijngaarden, et al.j) radix eight digit{c,k} : radix four digit{i} ; digit four symbol{94b} ;digit five symbol{94b} ; digit six symbol{94b} ;digit seven symbol{94b}.k) radix sixteen digit{c} : radix eight digit{j} ; digit eight symbol{94b} ;digit nine symbol{94b} ; letter a symbol{94a} ;letter b symbol{94a} ; letter c symbol{94a} ; letter d symbol{94a} ;letter e symboi{94a} ; letter f symbol{94a}.l) * bits denotation : BITS denotation{a,b,c}.{BITS :: structured withrow of boolean field SITHET~ letter aleph mode.}m) • radix digit : RADIX digit{h,i,j,k}.{Examples:a) long 2r101c) 8r231 }8.2.2. Semanticsb) short 16rffffa) The yield V of a bits-denotation D is determined as follows:• let W be the intrinsic boolean value {b} of its constituent RADIX-digitsequence:• let m be the length of W;• let n be the value of L bits width {10.2.1.j}, where L stands for as manytimes long (short) as there are long-symbols (short-symbols) contained inD;• it is required that m be not greater than n:• Y is a structured value {whose mode is some "BITS'} whose only field isa multiple value having(i) a descriptor ((1, n)) and(ii) n elements, that selected by (i) being false if 1 s_ i s_ n - m, and beingthe (i + m - n)-th truth value of {the sequence} W otherwise.b) The intrinsic boolean value of a RAI)lX-digit-sequence $ is theshortest sequence of truth values which, regarded as a binary number(true corresponding to 1 and false to 0), is the same as the intrinsicintegral value (c} of S.c) The intrinsic integral value of a radix-two- (radix-four-.radix-eight-, radix-sixteen-) -digit-sequence S is the integer of which thereference-language form of S {9.3.b} is a binary, (quaternary, octal.hexadecimal) representation, where the representations a. b, c, d, e and f,considered as digits, have values 10, 11, 12, 13, 14 and 15 respectively.8.3. String denotations{String-denotations are a convenient way of specifying "strings", i.e.,multiple values of mode "row of character'.Example:string message := "all is well" }8.3.1. Syntaxa)b)c){Examples:a) "abc"ALGOL <strong>68</strong> Revised Reportrow of character denotation{80a} :quote{94b} symbol, string{b} option, quote symboi{94b}.string{a} : string item{814b}, string item{814b} sequence.6.3.2. Semanticsstring denotation : row of character denotation{a}.b) abc }The yield of a string-denotation D is a multiple value V determined asfollows:• let n be the number of string-items contained in D;• the descriptor of V is ((1, n));• for i = 1 ..... n, the element of V with index (i) is the intrinsic value{8.1.4.2.b} of the i-th constituent symbol of the string of D.{"a" is a character-denotation, not a string-denotation. However, in allstrong positions, e.g., string s := "a", it can be rowed to a multiple value(6.6). Elsewhere, where a multiple value is required, a cast (5.5.1.1.a)may be used, e.g., union (char, string) cs := string ("a").}9. Tokens and symbols9.1. Tokens{Tokens (9.1.l.f) are symbols (9.1.1.h) possibly preceded by pragments(9.2.1.a). Therefore, pragments may appear between symbols whereverthe syntax produces a succession of tokens. However, in a few places, thesyntax specifically produces symbols rather than tokens, notably withindenotations (8), format.texts (10.3.4.1.1.a) and, of course, withinpragments. Therefore, pragments may not occur in these places.}9.1.1. Syntaxa) CHOICE STYLE start{34a} :where (CHOICE) is (choice using boolean),STYLE if{94f,-} token ;where (CHOICE) is (CASE), STYLE case{94f,-} token.b) CHOICE STYLE in{34e} :where (CHOICE) is (choice using boolean),STYLE then{94f,-} token ;where (CHOICE) is (CASE), STYLE in{94f,-} token.c) CHOICE STYLE again{341} :where (CHOICE) is (choice using boolean), "STYLE else if{94f,-} token ;where (CHOICE) is (CASE), STYLE ouse{94f,-} token.113
- 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 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