//JOB (ERCC07.ALTESTS,P.STEPHENS_ALGOL,T=240,L=5000) //ALGOL 'BEGIN' 'REAL' X, Y, Z; X := 6.0; 5.0; Y := - 2.931; Z := 4^.2; 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' I.J; I := 2; J := 3; 'IF' I * J > I + J 'THEN' 'END' //RUN //ALGOL 'BEGIN' 'REAL' A, X; X := - 10.0; A := ('IF' X < 0 'THEN' X - 1 'ELSE' 'IF' X > 1 'THEN' X + 1 'ELSE' X; 'END' //RUN //ALGOL 'BEGIN' 'REAL' X; Y; Z; X := + 6.0; Y := - 2.931; Z := 4^.2; 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' A, X; X := 0.8; A := ('IF' X >= 0 'AND' X <= 1 'THEN' X * X - 3 * X + 4 'ELSE' 0); OUTREAL(A); 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' J,K; 'ARRAY' A(/0:3/); K := 2; 'FOR' J := 1 'STEP' 1 'UNTIL' K 'BEGIN' I := 0; 'END'; 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' I, J; 'REAL' 'ARRAY' CAT(1 : 15); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'COMMENT' USE OF A PROCEDURE; 'REAL' A, B, ; 'PROCEDURE' EXAMPLE(X, Y)RESULT : (R); 'VALUE' X, Y; 'REAL' X, Y, R; 'BEGIN' X := X + Y; R := X^2 + Y^2 'END'; A := 1; B := 2; EXAMPLE(A, A + B, R); OUTREAL(99,R) 'END' //RUN //ALGOL 'BEGIN' 'SWITCH' PATH := P1, P2; 'INTEGER' N, I; I := 0; LABEL 1 :; I := I + 1; 'IF' I = 2 'THEN' 'GOTO' STOP; N := 0; 'GOTO' 'IF' P > 0 'THEN' PATH(N) 'ELSE' LABEL 1; P1 := P - 1; P2 := P - 1; STOP :; 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' I; 'REAL' X; 'ARRAY' A(/0, 3/); I := 1; 'FOR' X := 1.0, 2.0, 3.0 'DO' 'BEGIN' A(/I/):= X; I := I + 1 'END'; 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' K; K := 0; 'IF' K = 0'GOTO' FINISH 'ELSE' K := K + 1; FINISH :; 'END' //RUN //ALGOL 'BEGIN' 'REAL' X'INTEGER' I; 'ARRAY' A(/0 : 3/); I := 0; 'FOR' X := 1.23, 2.34, 3.45 'DO' 'BEGIN' A(/I/):= X; I := I + 1 'END'; 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I, P; I := 0; 'FOR' P := 1 'STEP' 1 'UNTIL' 4 'DO' 'BEGIN' 'OWN' 'INTEGER' I; 'IF' P = 1 'THEN' I := 3 'ELSE' I := 2 * I; 'BEGIN' 'INTEGER' J, I; J := 4; I := 0 'END'; OUTREAL(99, I); 'END'; 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I, P; I := 0; 'FOR' P := 1 'STEP' 1 'UNTIL' 4 'DO' 'BEGIN' 'OWN' 'INTEGER' I; 'IF' P = 1 'THEN' I := 3 'ELSE' I := 2 * I; 'BEGIN' 'OWN' 'INTEGER' J, I; I := 0; 'IF' I = 0 'THEN' J := 4 'ELSE' J := 4 * I; 'END'; OUTREAL(99, I); I := 0; 'END'; I := 0; 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I, P; I := 0; 'FOR' P := 1 'STEP' 1 'UNTIL' 4 'DO' 'BEGIN' 'OWN' 'INTEGER' I; 'IF' P = 1 'THEN' I := 3 'ELSE' I := 2 * I; 'BEGIN' 'OWN' 'INTEGER' J, I; 'IF' I = 0 'THEN' J := 4 'ELSE' J := 4 * I; OUTREAL(99, J); 'END'; I := 0; 'END'; I := 0; 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; X := 1.; OUTREAL(99, X); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; X := 1.&; OUTREAL(99, X); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; X := &+;OUTREAL(99, X); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; X := &; OUTREAL(99, X); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; X := .; OUTREAL(99, X); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; X := &-1000; OUTREAL(99, X); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I; 'PROCEDURE' P; 'BEGIN' 'INTEGER' J; 'PROCEDURE' Q; 'IF' I > 10 'THEN' 'GOTO' L; J := I := I + 1; Q; OUTREAL(99, J); P; L :; OUTREAL(99, J); 'END'; I := 1; P; 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' 'ARRAY' JJ(/1 : 8/); 'PROCEDURE' P(X); 'VALUE' X; 'INTEGER' X; ; 'PROCEDURE' DEVIATION; 'BEGIN' 'REAL' X, Y; P(JJ) 'END'; DEVIATION; 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I, J, CASE; 'PROCEDURE' CHECKB(BOOL, ANSWER); 'VALUE' ANSWER; 'BOOLEAN' BOOL; 'INTEGER' ANSWER; 'BEGIN' 'BOOLEAN' B; 'PROCEDURE' FAIL; 'BEGIN' OUTREAL(99, I); OUTREAL(99, J); OUTREAL(99, CASE) 'END'; 'FOR' I := 0, 1 'DO' 'FOR' J := 0, 1 'DO' 'BEGIN' B := ANSWER 'DIV' 2 * 2 = ANSWER; 'IF' B 'THEN' 'BEGIN' 'IF' BOOL 'THEN' 'ELSE' FAIL 'END' 'ELSE' 'IF' BOOL 'THEN' FAIL; ANSWER := ANSWER 'DIV' 2; 'END'; CASE := CASE + 1 'END' CHECKB; CASE := 1; CHECKB(J = 0 'OR' I = 0, 8); CHECKB(J = 0 'AND' I = 0, 14); CHECKB(J = 0 'EQUIV' I = 0, 6); CHECKB(J = 0 'IMPL' I = 0, 4); CHECKB(J = 0, 10); CHECKB( 'NOT' (J = 0), 5); OUTREAL(99, CASE) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I; 'INTEGER' 'ARRAY' C(/1 : 3/); 'FOR' I := 1, 2, 3 'DO' C(/I/):= I + 1; 'FOR' I := 1, 2, 3 'DO' 'IF' C(/C(/C(/C(/C(/C(/I/)- 1/)- 1/)- 1/)- 1/)- 1/)# I + 1 'THEN' OUTREAL(99, I); OUTREAL(99, 0) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I, J, K; 'BOOLEAN' P, T; 'PROCEDURE' FAIL; 'BEGIN' OUTREAL(99, I); OUTREAL(99, J) 'END'; T := 'TRUE'; 'FOR' I := - 1, 0, 1 'DO' 'FOR' J := - 1, 0, 1 'DO' 'BEGIN' K := 3 * (I + 1) + J + 2; 'IF' K 'DIV' 2 * 2 = K 'EQUIV' T 'THEN' FAIL; T := 'NOT' T; 'IF' (I + J > 1 'AND' J # 1) 'OR' (I + J < - 1 'AND' I # - 1) 'THEN' FAIL; 'IF' 'NOT' (K >= 7 'AND' I # 1 'IMPL' K < 0) 'THEN' FAIL; P := I = J; 'IF' P 'AND' I * J < 0 'THEN' FAIL 'END'; OUTREAL(99, 0) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X, Y, Z, U; 'INTEGER' I, CASE; 'PROCEDURE' COMPARE(U, V); 'VALUE' U, V; 'REAL' U, V; 'BEGIN' CASE := CASE + 1; 'IF' U # V 'THEN' 'BEGIN' OUTREAL(99, U); OUTREAL(99, V); OUTREAL(99, CASE) 'END'; 'END'; CASE := 0; X := 1.2; Y := 16.96; Z := - 13.4; 'FOR' I := 1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN' COMPARE( - X * Y, - (X * Y)); COMPARE( - X / Y, - (X / Y)); COMPARE(X + Y + Z, (X + Y) + Z); COMPARE(X * Y * Z, (X * Y) * Z); COMPARE(X / Y / Z, (X / Y) / Z); COMPARE(X * Y / Z, (X * Y) / Z); COMPARE(X^2 / Y, (X * X) / Y); COMPARE(X * Y^2, X * (Y * Y)); U := 1.01 * X; X := 1.01 * Y; Y := 1.01 * Z; Z := U; 'END'; OUTREAL(99, 0) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; X := + + 1.0; X := - - X; OUTREAL(99, + - X) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'BOOLEAN' B; B := 'NOT' 'TRUE'; B := 'NOT' ( 'NOT' B); B := 'NOT' 'NOT' B; OUTREAL(99, 'IF' B 'THEN' 0 'ELSE' 1) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; 'INTEGER' I; 'PROCEDURE' NOTFUNCTION(Y); 'VALUE' Y; 'REAL' Y; 'BEGIN' I := I + 1; X := Y 'END'; X := 1.0; I := 0; X := 3 * NOTFUNCTION(4.0); OUTREAL(99, X + NOTFUNCTION(X) + I) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X, Y; 'REAL' 'PROCEDURE' P(Z); 'VALUE' Z; 'REAL' Z; 'BEGIN' X := Z + Y 'END'; 'REAL' 'PROCEDURE' Q(Z); 'VALUE' Z; 'REAL' Z; 'IF' 'FALSE' 'THEN' Q := Z + X + Y; X := Y := 1.0; OUTREAL(99, P(10.0) + Q(100.0)) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X, Y; 'PROCEDURE' P(A, B, C); 'VALUE' A, B, C; 'REAL' A, B, C; 'BEGIN' X := A + B * C; Y := X + A 'END'; P(1.0,, 3); OUTREAL(99, X) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' 'PROCEDURE' FACT(N); 'VALUE' N; 'INTEGER' N; FACT := 'IF' N > 1 'THEN' N * FACT(N - 1) 'ELSE' 1; FACT := 1; OUTREAL(99, FACT(5)) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' Y; 'PROCEDURE' P(X, X); 'VALUE' X; 'REAL' X; X := X^2 + 8.6; P(Y, 2.0); OUTREAL(99, Y) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; 'PROCEDURE' P(Y); 'VALUE' X; 'REAL' Y; Y := X; X := 3.4; P(10.0); OUTREAL(99, X) 'END' //RUN SDEC : //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY'5; 'REAL' PR; 'INTEGER' PI; 'BOOLEAN' PB; PI := 1; PR := 0.0&0; PB := 'IF' 'NOT' PI > 0 'AND' PI >= 1 'OR' PI < 0 'IMPL' PR <= 0 'EQUIV' PI # 0 'THEN' 'TRUE' 'ELSE' 'TRUE'; 'IF' PB 'THEN' PR := - 1 * PI^3 'DIV' 2 + ENTIER(SIGN(SQRT(ABS(ARCTAN(LN(EXP(COS(SIN(1))))) )))) - (PR / ('IF' PR = 0.0 'THEN' 3 'ELSE' 3)); 'BEGIN' 'SWITCH' PSW := ENTRY, EXIT; 'OWN' 'REAL' 'ARRAY' PRA(/0 : 1/); 'INTEGER' 'ARRAY' PIA(/2 : 3/); 'BOOLEAN' 'ARRAY' PBA(/ - 1 : 0/); 'BOOLEAN' 'PROCEDURE' PFB; PFB := 'FALSE'; 'PROCEDURE' WRITE TEXT(OD, S); 'VALUE' OD; 'INTEGER' OD; 'STRING' S; OUTREAL(99, OD); 'PROCEDURE' ALL PARAMETERS(CSR, CSI, CSB, CA1, CA2, CB, CRFA, CIFA, CBFA, CFR, CFI, CFB, CL, CSL, CPR, CST, CSW, CAR, CAI, CAB); 'VALUE' CA1, CA2, CB, CRFA, CIFA, CBFA, CSL; 'INTEGER' CSI, CA2; 'REAL' CSR, CA1; 'BOOLEAN' CSB, CB; 'INTEGER' 'ARRAY' CIFA, CAI; 'REAL' 'ARRAY' CRFA, CAR; 'REAL' 'PROCEDURE' CFR; 'COMMENT'(X): 'VALUE' X: 'REAL' X; 'INTEGER' 'PROCEDURE' CFI; 'COMMENT'(X): 'VALUE' X: 'REAL' X; 'BOOLEAN' 'PROCEDURE' CFB; 'BOOLEAN' 'ARRAY' CBFA, CAB; 'PROCEDURE' CPR;'COMMENT'(D,S):'VALUE' D:'INTEGER' D:'STRING' S; 'STRING' CST; 'SWITCH' CSW; 'LABEL' CL, CSL; 'BEGIN' 'REAL' 'PROCEDURE' TAKE FORMAL(TF); 'REAL' TF; TAKE FORMAL := TF; CAR(/1/):= TAKE FORMAL(CA1); CAI(/2/):= CA2; CAB(/ - 1/):= CB; CPR(30, CST); CFB; CA2 := CFI(1); 'GOTO' CL; 'END' ALL PARAMETERS; 'FOR' PI := PI + 1 'WHILE' PI < 3, 1 'STEP' 1 'UNTIL' 1, 1 'DO' PI := PI := PI; 'GOTO' PSW(/1/); ENTRY :; ALL PARAMETERS(PR, PI, PB, 3.0, 3, 'FALSE', PRA, PIA, PBA, SIN, ENTIER, PFB, PSW(/2/), EXIT, WRITE TEXT, < THIS$IS$A$STRING>, PSW, PRA, PIA, PBA); EXIT :; OUTREAL(99, PRA(/1/)+ PIA(/2/)+ PI + PR + ('IF' PBA(/ - 1/) 'THEN' 10 'ELSE' 0)); 'END'; 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; 'PROCEDURE' P(A, B); 'VALUE' (A, B); 'REAL' (A, B); X := A + B; P(3, 4); OUTREAL(99, X) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; 'INTEGER' I; X := 3.84; 'FOR' I := 1 'STEP' 1 'UNTIL' 200 'DO' 'BEGIN' 'IF' - 1 / X # - (1 / X) 'THEN' OUTREAL(99, I); X := X * 1.01; 'END'; OUTREAL(99, 0); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'ARRAY' A(/1.2/); A(/1/):= 1.0; OUTREAL(99, A(/1/)) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I, J, K; I := J := K := 1; 'IF' I = J 'THEN' LA : 'IF' J # K 'THEN' OUTREAL(99, 1) 'ELSE' OUTREAL(99, 2); OUTREAL(99, 3) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'ARRAY' A(/1 : 2.3 : 4/); A(/1/):= 1.0; OUTREAL(99, A(/1/)) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X, Y; 'INTEGER' CASE; 'PROCEDURE' CHECK(B); 'VALUE' B; 'BOOLEAN' B; 'IF' B 'THEN' CASE := CASE + 1 'ELSE' 'BEGIN' OUTREAL(99, X); OUTREAL(99, Y); OUTREAL(99, CASE) 'END'; CASE := 0; 'FOR' X := - 6.8, .001, 13.4 'DO' 'FOR' Y := - 6.8, .001, 13.4 'DO' 'BEGIN' 'IF' X = Y 'THEN' CHECK(X <= Y 'OR' X >= Y) 'ELSE' 'IF' X > Y 'THEN' CHECK(X >= Y) 'ELSE' 'IF' X < Y 'THEN' CHECK(X <= Y) 'ELSE' CHECK('FALSE') 'END'; OUTREAL(99, CASE); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'BOOLEAN' A, B, C; 'INTEGER' I, J; A := B := C := 'TRUE'; I := J := 1; A := I = J; B := I # J; C := A := B; C := A = B; C = A = B; OUTREAL(99, 'IF' A 'THEN' 0 'ELSE' 'IF' B 'THEN' 2 'ELSE' 3); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY'5; 'REAL' 'PROCEDURE' P(Q); 'REAL' 'PROCEDURE' Q; 'COMMENT'(X): 'VALUE' X: 'REAL' X; P := ABS(Q( - 6.4)); OUTREAL(99, P(ABS)) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'REAL' X; X := 0; X := (X + 1.1) / 3.3; X := (X + 2.2) / 6.6; X := (X + 3.3) / 9.9; X := (X + 4.4) / 13.2; X := (X + 5.5) / 16.5; X := (X + 6.6) / 19.8; X := (X + 7.7) / 23.1; X := (X + 8.8) / 26.4; X := (X + 9.9) / 29.7; X := (X + 11.0) / 33.0; X := (X + 12.1) / 36.3; X := (X + 13.2) / 39.6; X := (X + 14.3) / 42.9; X := (X + 15.4) / 46.2; X := (X + 16.5) / 49.5; X := (X + 17.6) / 52.8; X := (X + 18.7) / 56.1; X := (X + 19.8) / 59.4; X := (X + 20.9) / 62.7; X := (X + 22.0) / 66.0; X := (X + 23.1) / 69.3; X := (X + 24.2) / 72.6; X := (X + 25.3) / 75.9; X := (X + 26.4) / 79.2; X := (X + 27.5) / 82.5; X := (X + 28.6) / 85.8; X := (X + 29.7) / 89.1; X := (X + 30.8) / 92.4; X := (X + 31.9) / 95.7; X := (X + 33.0) / 99.0; X := (X + 34.1) / 102.3; X := (X + 35.2) / 105.6; X := (X + 36.3) / 108.9; X := (X + 37.4) / 112.2; X := (X + 38.5) / 115.5; X := (X + 39.6) / 118.8; X := (X + 40.7) / 122.1; X := (X + 41.8) / 125.4; X := (X + 42.9) / 128.7; X := (X + 44.0) / 132.0; X := (X + 45.1) / 135.3; X := (X + 46.2) / 138.6; X := (X + 47.3) / 141.9; X := (X + 48.4) / 145.2; X := (X + 49.5) / 148.5; X := (X + 50.6) / 151.8; X := (X + 51.7) / 155.1; X := (X + 52.8) / 158.4; X := (X + 53.9) / 161.7; X := (X + 55.0) / 165.0; X := (X + 56.1) / 168.3; X := (X + 57.2) / 171.6; X := (X + 58.3) / 174.9; X := (X + 59.4) / 178.2; X := (X + 60.5) / 181.5; X := (X + 61.6) / 184.8; X := (X + 62.7) / 188.1; X := (X + 63.8) / 191.4; X := (X + 64.9) / 194.7; X := (X + 66.0) / 198.0; X := (X + 67.1) / 201.3; X := (X + 68.2) / 204.6; X := (X + 69.3) / 207.9; X := (X + 70.4) / 211.2; X := (X + 71.5) / 214.5; X := (X + 72.6) / 217.8; X := (X + 73.7) / 221.1; X := (X + 74.8) / 224.4; X := (X + 75.9) / 227.7; X := (X + 77.0) / 231.0; X := (X + 78.1) / 234.3; X := (X + 79.2) / 237.6; X := (X + 80.3) / 240.9; X := (X + 81.4) / 244.2; X := (X + 82.5) / 247.5; X := (X + 83.6) / 250.8; X := (X + 84.7) / 254.1; X := (X + 85.8) / 257.4; X := (X + 86.9) / 260.7; X := (X + 88.0) / 264.0; X := (X + 89.1) / 267.3; X := (X + 90.2) / 270.6; X := (X + 91.3) / 273.9; X := (X + 92.4) / 277.2; X := (X + 93.5) / 280.5; X := (X + 94.6) / 283.8; X := (X + 95.7) / 287.1; X := (X + 96.8) / 290.4; X := (X + 97.9) / 293.7; X := (X + 99.0) / 297.0; X := (X + 100.1) / 300.3; X := (X + 101.2) / 303.6; X := (X + 102.3) / 306.9; X := (X + 103.4) / 310.2; X := (X + 104.5) / 313.5; X := (X + 105.6) / 316.8; X := (X + 106.7) / 320.1; X := (X + 107.8) / 323.4; X := (X + 108.9) / 326.7; X := (X + 110.0) / 330.0; OUTREAL(99, X); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'PROCEDURE' P(ST1, ST2); 'STRING' ST1, ST2; ; P( < 1.1>, < 3.3> ); P( < 2.2>, < 6.6> ); P( < 3.3>, < 9.9> ); P( < 4.4>, < 13.2> ); P( < 5.5>, < 16.5> ); P( < 6.6>, < 19.8> ); P( < 7.7>, < 23.1> ); P( < 8.8>, < 26.4> ); P( < 9.9>, < 29.7> ); P( < 11.0>, < 33.0> ); P( < 12.1>, < 36.3> ); P( < 13.2>, < 39.6> ); P( < 14.3>, < 42.9> ); P( < 15.4>, < 46.2> ); P( < 16.5>, < 49.5> ); P( < 17.6>, < 52.8> ); P( < 18.7>, < 56.1> ); P( < 19.8>, < 59.4> ); P( < 20.9>, < 62.7> ); P( < 22.0>, < 66.0> ); P( < 23.1>, < 69.3> ); P( < 24.2>, < 72.6> ); P( < 25.3>, < 75.9> ); P( < 26.4>, < 79.2> ); P( < 27.5>, < 82.5> ); P( < 28.6>, < 85.8> ); P( < 29.7>, < 89.1> ); P( < 30.8>, < 92.4> ); P( < 31.9>, < 95.7> ); P( < 33.0>, < 99.0> ); P( < 34.1>, <102.3> ); P( < 35.2>, <105.6> ); P( < 36.3>, <108.9> ); P( < 37.4>, <112.2> ); P( < 38.5>, <115.5> ); P( < 39.6>, <118.8> ); P( < 40.7>, <122.1> ); P( < 41.8>, <125.4> ); P( < 42.9>, <128.7> ); P( < 44.0>, <132.0> ); P( < 45.1>, <135.3> ); P( < 46.2>, <138.6> ); P( < 47.3>, <141.9> ); P( < 48.4>, <145.2> ); P( < 49.5>, <148.5> ); P( < 50.6>, <151.8> ); P( < 51.7>, <155.1> ); P( < 52.8>, <158.4> ); P( < 53.9>, <161.7> ); P( < 55.0>, <165.0> ); P( < 56.1>, <168.3> ); P( < 57.2>, <171.6> ); P( < 58.3>, <174.9> ); P( < 59.4>, <178.2> ); P( < 60.5>, <181.5> ); P( < 61.6>, <184.8> ); P( < 62.7>, <188.1> ); P( < 63.8>, <191.4> ); P( < 64.9>, <194.7> ); P( < 66.0>, <198.0> ); P( < 67.1>, <201.3> ); P( < 68.2>, <204.6> ); P( < 69.3>, <207.9> ); P( < 70.4>, <211.2> ); P( < 71.5>, <214.5> ); P( < 72.6>, <217.8> ); P( < 73.7>, <221.1> ); P( < 74.8>, <224.4> ); P( < 75.9>, <227.7> ); P( < 77.0>, <231.0> ); P( < 78.1>, <234.3> ); P( < 79.2>, <237.6> ); P( < 80.3>, <240.9> ); P( < 81.4>, <244.2> ); P( < 82.5>, <247.5> ); P( < 83.6>, <250.8> ); P( < 84.7>, <254.1> ); P( < 85.8>, <257.4> ); P( < 86.9>, <260.7> ); P( < 88.0>, <264.0> ); P( < 89.1>, <267.3> ); P( < 90.2>, <270.6> ); P( < 91.3>, <273.9> ); P( < 92.4>, <277.2> ); P( < 93.5>, <280.5> ); P( < 94.6>, <283.8> ); P( < 95.7>, <287.1> ); P( < 96.8>, <290.4> ); P( < 97.9>, <293.7> ); P( < 99.0>, <297.0> ); P( <100.1>, <300.3> ); P( <101.2>, <303.6> ); P( <102.3>, <306.9> ); P( <103.4>, <310.2> ); P( <104.5>, <313.5> ); P( <105.6>, <316.8> ); P( <106.7>, <320.1> ); P( <107.8>, <323.4> ); P( <108.9>, <326.7> ); P( <110.0>, <330.0> ); OUTREAL(99, 0) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I; 'PROCEDURE' P(A, B); 'VALUE' A; 'VALUE' B; 'INTEGER' A, B; I := A + B; P(3, 4); OUTREAL(99, I); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I; 'PROCEDURE' P(A, B); 'INTEGER' A; 'INTEGER' B; I := A + B; P(3, 4); OUTREAL(99, I); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'BOOLEAN' B; 'REAL' X; 'INTEGER' 'ARRAY' A(/ + 1 : .6&2/); 'INTEGER' I, N; B := 'FALSE'; N := &+2 * .6; X := 0; 'COMMENT' ; 'BEGIN' 'COMMENT' ; 'OWN' 'REAL' 'ARRAY' C0(/0 : 1/); 'PROCEDURE' P(A, B, C); 'VALUE' A; 'INTEGER' A; 'STRING' B; 'BOOLEAN' 'ARRAY' C; 'BEGIN' 'BEGIN' C(/(1)/):= 'TRUE' 'OR' .8 > C0(/'IF' 'TRUE' 'THEN' 0 'ELSE' 1/); C(/ - ( - 2)/):= 'FALSE' 'AND' .4 >= X + 500&-2; C(/.3&1/):= .3 # (0) 'AND' ('IF' &1 # &4 'THEN' 'TRUE' 'ELSE' 'FALSE'); 'IF' 'FALSE' 'THEN' P(A, , C) 'ELSE' 'END'; ; 'FOR' I := 1 'STEP' 1 'UNTIL' 3 'DO' 'BEGIN' 'IF' .3 <= 6 'DIV' 2 'THEN' 'GOTO' OUT; OUT : 'END' 'END'; 'REAL' 'PROCEDURE' A0L; A0L := 'IF' X < X 'THEN' &4 'ELSE' .6; 'INTEGER' 'PROCEDURE' II; II := + 1 * (3 'DIV' (4)) - &2 + A0L; 'BEGIN' 'BOOLEAN' 'ARRAY' C(/II + II 'DIV' II / II : 1^II + 3/); C0(/0/):= 'IF' B 'AND' (1) = (2) 'THEN' 0 'ELSE' 0; P( + 1)L : ( <> )M : (C); I := - N - I * N 'DIV' N^1; 'GOTO' 'IF' 1 - .9 = II / 6 'AND' II <= A0L 'THEN' L 'ELSE' L1; L : L1 : 'FOR' I := I 'STEP' N 'UNTIL' II 'DO' ; 'IF' + .3 + &2 = + (.3) 'THEN' B := 'NOT' B 'EQUIV' 'FALSE' 'ELSE' B := &1 > 3 'EQUIV' 'TRUE'; 'FOR' I := ((1)) 'STEP' + (1) 'UNTIL' + 60 'DO' 'BEGIN' A(/&1 - 9/):= 1 / .1 - 0.1; A(/I/):= 'IF' ('TRUE') 'OR' A(/1/)- 1 # A(/&1 - 9/)* 1 'IMPL' 'FALSE' 'THEN' + 1 'ELSE' - 1 'END'; 'FOR' I := 1, - 9 + A(/1/)'STEP' - 9 + A(/1/)'UNTIL' .6&1 'DO' N := 'IF' + A(/1/)+ 0 = A(/1/)'THEN' 0 'ELSE' &1 - 9 + N; 'IF' + N # + 1 'EQUIV' N = - N 'OR' 0 < + N 'AND' 0 + N >= 0 'THEN' 'ELSE' 'GOTO' L2; B := B 'IMPL' N > + 0 'EQUIV' 0 < - A(/1/)/ &1 'OR' 'TRUE'; L2 : 'GOTO' (L3); L3 : B := 'TRUE' 'AND' 'FALSE' 'OR' 'FALSE' 'IMPL' 'TRUE' 'EQUIV' + 0 # - 1; N := 1^N * 1 + (&1) * &-2^(1) / (2) + N; B := 'TRUE' 'EQUIV' - (0) 'DIV' 1 > - A(/1/)'OR' 'NOT' 'TRUE' 'EQUIV' 'NOT' 'TRUE'; B := 'NOT' 'FALSE' 'EQUIV' .1 = 1 'IMPL' 'TRUE' 'IMPL' 0 # 1; 'FOR' I := 1 'WHILE' 'TRUE' 'DO' 'GOTO' EXIT; EXIT : 'FOR' I := I 'WHILE' 'FALSE' 'DO' 'IF' - 0 >= + 6 'THEN' 'FOR' N := 1 'WHILE' 0 >= - 1 'OR' + N <= + (1) 'DO' 'FOR' N := 1 'DO' ; B := 0 < &1 'IMPL' + 1 <= .1 'OR' - 3 <= - 6 'AND' 'TRUE' 'AND' + 1 <= &1; B := B 'IMPL' - (1) < (2) 'EQUIV' &1 = .1 'AND' - (1) <= 0; 'IF' C(/1/)'IMPL' 'NOT' + 1 = &1 'THEN' ; X := A(/1/)^.5^&1 + ('IF' 'NOT' N >= .1 'OR' ('IF' 'TRUE' 'THEN' 'FALSE' 'ELSE' 'TRUE') 'THEN' - 1 'ELSE' + 2); 'BEGIN' 'INTEGER' 'PROCEDURE' A0(B, C); 'BOOLEAN' B, C; A0 := 'IF' B 'IMPL' 'NOT' C 'THEN' (1)^2 'ELSE' 'IF' C 'AND' 'NOT' B 'THEN' (1) 'ELSE' (2); X := X + A0('TRUE', 'FALSE') + A0('FALSE', 'TRUE' 'IMPL' .4 < .6); N := X * A0( 'NOT' 0 = &1, 1 >= &2) - A0( 'NOT' - 1 > .1, 'NOT' .1 <= (1)) 'END'; 'BEGIN' 'GOTO' L4; L4 : 'BEGIN' 'FOR' I := I 'STEP' 'IF' 1 < 2 'THEN' 1 'ELSE' 2 'UNTIL' - 10 'DO' 'END'; 'IF' 'IF' B 'THEN' .1 > &1 'ELSE' 'NOT' &1 # .6 'THEN' 'BEGIN' X := X + 100 'END' 'ELSE' 'FOR' I := 1 'STEP' .3&1 'UNTIL' 'IF' 'NOT' ('FALSE') 'THEN' 1 'ELSE' A(/1/)'DO' B := 'TRUE' 'END'; B := 'FALSE' 'END'; 'BEGIN' 'REAL' Y; 'ARRAY' D(/C0(/0/): + A(/1/)'DIV' 1 + 1 + C0(/0/)/); 'BOOLEAN' 'PROCEDURE' B1; 'BEGIN' 'OWN' 'BOOLEAN' X; X := 'IF' D(/0/)< 0 'THEN' 'NOT' D(/0/)<= (0) 'IMPL' (D(/0/)>= (1)) 'ELSE' B; B := X 'AND' &1 + D(/0/)> (1) 'EQUIV' (D(/0/)# 0); B1 := B 'OR' &1 + D(/0/)= D(/0/)'EQUIV' (1) > D(/0/) 'END'; 'SWITCH' S := L10, L11; D(/0/):= 0; B := B1 'IMPL' &1 + (1) # D(/0/)'AND' B; L10 :; L11 :; 'END'; 'BEGIN' 'SWITCH' SS := LA, LB; 'OWN' 'INTEGER' P; 'PROCEDURE' Q(L); 'LABEL' L; 'BEGIN' 'ARRAY' R(/(0) : - ( - 1)/), S(/1 : &1/); 'FOR' I := 0, + 1, .3, &1, (2), 'IF' B 'THEN' 0 'ELSE' 1 'DO' 'BEGIN' 'END'; 'FOR' I := 1 'WHILE' I + (0) >= 9, I + 1 'WHILE' + I < 10 'DO' S(/I/):= 0; 'FOR' I := 1 + S(/2/)'WHILE' - I > 0, I + (1) 'WHILE' 'NOT' I >= 10 'DO' 'IF' B 'THEN' 'END'; Q(LA); LA :; LB :; 'END'; 'BEGIN' 'PROCEDURE' P; 'BEGIN' ; 'FOR' I := 1 'WHILE' 'IF' 1 < 2 'THEN' 0 = A(/1/)'ELSE' (A(/1/)) > 0 'DO' 'END'; 'ARRAY' D(/1 : 'IF' 1 < 2 'THEN' 2 'ELSE' 1/); 'FOR' I := 1 'WHILE' .1 < - 3, I + 1 'WHILE' (I) < 3 'DO' D(/I/):= I; 'FOR' I := D(/2/), 1 'STEP' (1) 'UNTIL' (1) 'DO' 'IF' 1 < 2 'THEN' L : 'ELSE' 'BEGIN' 'END'; P; 'FOR' I := 1 'STEP' &1 - 9 'UNTIL' &1 - 9, 1 'WHILE' &1 > 11 'DO' X := X + N 'END'; OUTREAL(99, X + N); 'END' 'END' //RUN //ALGOL 'BEGIN' 'BEGIN' 'REAL' A; 'GOTO' L; L: 'WHILE' 'END' 'END' //RUN //ALGOL 'BEGIN' 'PROCEDURE' P(A); 'VALUE' A: ; P(1) 'END' //RUN //ALGOL 'BEGIN' 'PROCEDURE' P(A); 'REAL' A: ; P(1.0) 'END' //RUN //ALGOL 'BEGIN' 'PROCEDURE' P(A ; ; P(1) 'END' //RUN //ALGOL 'BEGIN' 'ARRAY' A(/(0:3/); 'END' //RUN //ALGOL 'BEGIN' 'IF' ('TRUE' 'OR' ('TRUE') 'THEN' 'END' //RUN //ALGOL 'BEGIN' L: 'GOTO' (L/) 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' I; 'FOR' 1:=I 'DO'; 'END' //RUN //ALGOL 'BEGIN' 'PROCEDURE' 1;; L; 'END' //RUN //ALGOL 'BEGIN' 'PROCEDURE' P();; 'END' //RUN //ALGOL 'BEGIN' 'SWITCH' 0:=L; L: 'GOTO' O(/1/) 'END' //RUN //ALGOL 'BEGIN' 'ARRAY' A(/'IF' 'TRUE' 'THEN' 1 : 10/); 'END' //RUN //ALGOL L,'BEGIN' 'REAL' A; 'END' //RUN //ALGOL 'BEGIN' 'SWITCH' S:=L; L: 'GOTO' S(/1) 'END' //RUN //ALGOL 'BEGIN' 'ARRAY' A(/1:10/); A(/1) := 1 'END' //RUN //ALGOL 'BEGIN' 'ARRAY' A(/1:10/); A(/1/)= 1 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' A; 'FOR' A=1 'DO' 'END' //RUN //ALGOL 'BEGIN' 'SWITCH' S=L1,L2; L1:L2: 'END' //RUN //ALGOL 'BEGIN' 'OWN' 'ARRAY'(/1:10/); 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' I; 'FOR' I:= 1 'STEP' 1 'DO' 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I; 'INTEGER' 'PROCEDURE' C; 'BEGIN' 'FOR' C := 1 'STEP' 1 'UNTIL' 3 'DO' 'BEGIN' I := I + 1; 'IF' I < 10 'THEN' C := C + 1 'END' 'END'; I := 0; OUTREAL(99, C) 'END' //RUN //ALGOL LABELWITHOUTCOLON 'BEGIN' 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' 'LIBRARY' 1; 'INTEGER' I, J, K, M; 'INTEGER' 'PROCEDURE' GPPS(I, N, V, Z); 'INTEGER' I, N, V, Z; 'BEGIN' 'FOR' I := 1 'STEP' 1 'UNTIL' N 'DO' V := Z; GPPS := 1 'END'; 'FOR' M := 1 'STEP' 1 'UNTIL' 25 'DO' 'BEGIN' I := GPPS(I, M + 1, K, 'IF' I = 1 'THEN' 1 'ELSE' K + GPPS(J, K - 1, J, 'IF' (K + 1) - (J + 1) * ((K + 1) 'DIV' (J + 1)) # 0 'THEN' J 'ELSE' K * GPPS(J, 1, I, I - 1))); OUTREAL(99, K) 'END' 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' I; 'INTEGER'ARRAY A,B(/1:10/); 'ARRAY' C,D(/1:10/); 'PROCEDURE' TEST(P,Q,R,S); 'VALUE' P,Q,R,S; 'ARRAY' R,S; 'INTEGER'ARRAY P,Q; 'BEGIN' 'INTEGER' I; 'FOR' I:=1'STEP'1'UNTIL' 10 'DO' 'BEGIN' 'IF' I#P(/I/)'OR' I#Q(/I/)'OR' I#R(/I/)'OR' I#S(/I/) 'THEN' 'BEGIN' PRINT(I,2,0); PRINT(P(/I/),2,0); PRINT(Q(/I/),2,0); PRINT(R(/I/),2,1); PRINT(S(/I/),2,1); NEWLINE 'END'; P(/I/):=Q(/I/):=0; R(/I/):=S(/I/):=0 'END' FOR; PRINTSTRING() 'END' TEST; 'FOR' I:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN' A(/I/):=B(/I/):=I; C(/I/):=D(/I/):=I 'END'; TEST(A,C,D,B); 'FOR' I:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN' 'IF' A(/I/)#I 'OR' B(/I/)#I 'OR' C(/I/)#I 'OR' D(/I/)#I 'THEN' 'BEGIN' PRINTSTRING(); PRINT(I,2,0) 'END' 'END' 'END' //RUN