130van Wijngaarden, et al.ALGOL <strong>68</strong> Revised Report 131d)e)f)mode L reel = c an actual-declarer specifying the mode 'L real' c ;mode char= c an actual-declarer specifying the mode 'character' c ;mode L compl = struct (L real re, im) ;g) mode L bits = struct ([1: L bits width ] bool L F); {See 10.2. l.j}[The field-selector is hidden from the user in order that he may notbreak open the structure; in particular, he may not subscript the field.}h) mode L bytes = struct ([ 1 : L bytes width ] char L ~ ; {See 10.2. l.m}i) mode string = flex [1 : O] char;10.2.3. Standard operators and functions10.2.3.0. Standard prioritiesa) prio minusab = 1, plusab = 1, timesab = 1, divab = 1, overab = 1,modab = 1, plusto = 1,-:== l, +:== l, x:== l, *:== l, /:==I, ÷:==1,%:==1, ÷x:== l,+,:==I, %x:== l, %,:== I, +=: =i,v =2, or=2,^=3, &=3, and=3,==4, oq=4, ~=4, /==4, ne=4,< =5, lt=5, ==5, ge=5, >=5, gt=5,-=6,+=6,x=7,,=7, /=7, +=7, %=7, over=7,+x = 7, ÷,= 7, %x = 7, %,= 7, mod = 7,= 7, elem = 7,I =8,**=8, ! =8, up=8, down=8, shl=8, shr=8,Iwb=8, upb=8, L =8, r =8,1 =9, +x=9, +.=9, i=9;10.2.3.1. Rows and associated operationsa) mode 9 rows = c an actual-declarer specifying a mode united from{2.1.3.6.a} a sufficient set of modes each of which begins with'row' c ;b) op ~ lwb, L # = (int n, rows a) int : c the lower bound in the n-th boundpair of the descriptor of the value of 'a', if that bound pairexists c ;c) op$upb, r #=(intn, rowsa)int: cthe upper bound in the n-thbound pair of the descriptor of the value of 'a', if that bound pairexists c ;d) op~lwb, L~=(rowsa)int: 1 L a;e) op~upb, r#=(rowsa)int: 1 r a;{The term "sufficient set", as used in a above and also in 10.3.2.2.b andd, implies that no intended particular-program should fail to be produced(nor any unintended particular-program be produced) by the syntax solelyon account of an insufficiency of modes in that set.}10.2.3.2. Operations on boolean operandsa) op ~ v, or~ = (bool a, b) bool : (a I true I b) ;b) opt^, &, and~=(boola, b)bool: (al bl false);c) opt-, ~, not#=(boola)bool: (al falsel true);d) op~=,eq#=(boola, b)bool: (ahb) v(-a^-b);e) op ~ ~, /=, ne ~ = (bool a, b) bool : - (a = b) ;f) op abs = (bool a) int : (a I 1 I O) ;10.2.3.3. Operations on integral operandsa) op ~
132m)n)o)p)q)r)s)t)u)van Wijngaarden, et el.opt+, %, over~=(L inta, b)L int:ifb~L 0then L int q : = L O, r : = abs a;while(r:= r - abs b) z L 0 do q := q + L 1 od;(a< L O^b>_L Ov a>_L O^ b< L O[ -qlq)li;op ~+x, +,, %x, %,, mod~=(L lnta, b)L inl:(intr=a-a : bxb; r< O] r +absb] r) ;op / = (L int a, b) L real: L real (a) / L real(b);opt t,**, up~=(L inta, intb) L int:(b >_O I L intp:= L l; tobdop :=pxaod; p);op leng = (Lint a) long Lint : c the long L integral value lengttzenedfrom {2.1.3.1.e} the value of 'a' c ;op shorten = (long Llnt a) Lint : c the L integral value, if it exists,which can be lengthened to {2.1.3.1.e} the value of 'a' c ;op odd = (L int a) bool : abs a +x I, 2 = L 1;op sign = (Lint a) int :(a> L OI ll: a < L OI -110);op¢1, +x, +,, i*=(L inta, b)L compl: (a,b);m)n)o)P)q)r)s)ALGOL <strong>68</strong> Revised Report 133Op / = (L real a, b) L real : c the value of 'a' divided by {2.1.3. l.e} thatof 'b' c ;op lang = (L real a) long L real : c the long L real value lengthenedfrom {2.1.3.1.e} the value of 'a' c ;op shorten = (long L real a) L real : c if abs a a do j : = j - L 1 od;Jend;op ~:.L, +x, +,, i~ = (IL real a, b) II, compl : (a, b) ;10.2.3.5. Operations on arithmetic operands10.2.3.4. Operations on real operandsa) I op ~
- 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 64 and 65: 126 van Wijngaarden, et al.b) The c
- 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