//JOB (ERCC07,P.STEPHENS,T=240,L=8000) //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I; 'REAL' X; X := 3.2; I := - 2; OUTREAL(99, I^X) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 99; 'INTEGER' I, J; I := 0; J := - 2; OUTREAL(99, I^J) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I; 'REAL' X; X := 0.0; I := - 2; OUTREAL(99, X^I) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER''PROCEDURE' P(B); 'VALUE' B; 'BOOLEAN' B; P := ('IF' B 'THEN' 1 'ELSE' 3.3) 'DIV' 6; OUTREAL(99, P('TRUE')); OUTREAL(99, P('FALSE')) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I, J; I := 2; J := 3; OUTREAL(99, I^J 'DIV' J) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I, J, K, CASE; 'PROCEDURE' EQUAL(I, J); 'VALUE' I, J; 'INTEGER' I, J; 'IF' I # J 'THEN' 'BEGIN' OUTREAL(99, CASE); OUTREAL(99, I); OUTREAL(99, J) 'END' 'ELSE' CASE := CASE + 1; I := 2; J := 5; K := 9; CASE := 0; EQUAL(I + J + K, 16); EQUAL(I + J - K, - 2); EQUAL(I + J * K, 47); EQUAL(I + J 'DIV' K, 2); EQUAL(I + J^K, 1953127); EQUAL(I - J + K, 6); EQUAL(I - J - K, - 12); EQUAL(I - J * K, - 43); EQUAL(I - J 'DIV' K, 2); EQUAL(I - J^K, -1953123); EQUAL(I * J + K, 19); EQUAL(I * J - K, 1); EQUAL(I * J * K, 90); EQUAL(I * J 'DIV' K, 1); EQUAL(I * J^2, 50); EQUAL(J 'DIV' I + K, 11); EQUAL(J 'DIV' I - K, - 7); EQUAL(J 'DIV' I * K, 18); EQUAL(J 'DIV' I 'DIV' K, 0); EQUAL(J 'DIV' I^K, 0); EQUAL(I^J + K, 41); EQUAL(I^J - K, 23); EQUAL(I^J * K, 288); EQUAL(I^J 'DIV' K, 3); EQUAL(I^J^2, 1024); OUTREAL(99, CASE) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I, J; I := 3; J := - 2; OUTREAL(99, (81 * I^J) 'DIV' 2); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I; 'SWITCH' S := S1, S2, S3, S4; 'FOR' I := 1 'STEP' 1 'UNTIL' 4 'DO' 'BEGIN' 'GOTO' S[I]; S1 :; 'IF' I # 1 'THEN' OUTREAL(99, I) 'ELSE' 'GOTO' EXIT; S2 :; 'IF' I # 2 'THEN' OUTREAL(99, I) 'ELSE' 'GOTO' EXIT; S3 :; 'IF' I # 3 'THEN' OUTREAL(99, I) 'ELSE' 'GOTO' EXIT; S4 :; 'IF' I # 4 'THEN' OUTREAL(99, I) 'ELSE' 'GOTO' EXIT; EXIT :; 'END'; 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I; 'SWITCH' S := S1, S2, S3, S4; 'FOR' I := 1, 2, 3 'DO' 'BEGIN' 'GOTO' S[I]; S1 :; 'IF' I # 1 'THEN' OUTREAL(99, I) 'ELSE' S2 : 'IF' I # 2 'THEN' OUTREAL(99, I) 'END'; S3 :; OUTREAL(99, I); 'GOTO' S[I + 1]; S4 :; OUTREAL(99, I) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I; 'SWITCH' S := S1, S2, S3; I := 1; 'GOTO' S[I]; 'FOR' I := 1, 2, 3 'DO' 'BEGIN' S1 :; OUTREAL(99, 10); S2 :; OUTREAL(99, 20); OUTREAL(99, I) 'END'; S3 :; OUTREAL(99, 30) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I, CASE; 'BOOLEAN' B; 'REAL' X; 'INTEGER''PROCEDURE' P(K, Q); 'VALUE' K; 'INTEGER' K; 'INTEGER''PROCEDURE' Q; 'COMMENT' (X1) : 'VALUE' X1 : 'REAL' X1 ; P := 'IF' K = 1 'THEN' Q(I) 'ELSE' 'IF' K = 2 'THEN' Q(B) 'ELSE' 'IF' K = 3 'THEN' Q(X) 'ELSE' Q(Q(20)); 'INTEGER''PROCEDURE' Q1(I); 'VALUE' I; 'INTEGER' I; Q1 := 100 + I; 'INTEGER''PROCEDURE' Q2(B); 'VALUE' B; 'BOOLEAN' B; Q2 := 200 + ('IF' B 'THEN' 1 'ELSE' 0); 'INTEGER''PROCEDURE' Q3(X); 'VALUE' X; 'REAL' X; Q3 := 300 + X; 'PROCEDURE' FAIL(M, N); 'VALUE' M, N; 'INTEGER' M, N; 'IF' M # N 'THEN' 'BEGIN' OUTREAL(99, M); OUTREAL(99, N); OUTREAL(99, CASE) 'END' 'ELSE' CASE := CASE + 1; I := 1; X := 10.4; CASE := 0; B := 'FALSE'; FAIL(P(1, Q1), 101); FAIL(P(4, Q1), 220); FAIL(P(2, Q2), 200); FAIL(P(3, Q3), 310); FAIL(P(4, Q3), 620); OUTREAL(99, CASE) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 3; 'INTEGER' I, CASE; 'BOOLEAN' B; 'REAL' X; 'INTEGER''PROCEDURE' P(K, Q); 'VALUE' K; 'INTEGER' K; 'INTEGER''PROCEDURE' Q; 'COMMENT' (X1) : 'VALUE' X1 : 'INTEGER'X1 ; P := 'IF' K = 1 'THEN' Q(I) 'ELSE' 'IF' K = 2 'THEN' Q 'ELSE' 'IF' K = 3 'THEN' Q(X) 'ELSE' Q(Q(20)); 'INTEGER''PROCEDURE' Q1(I); 'VALUE' I; 'INTEGER' I; Q1 := 100 + I; 'INTEGER''PROCEDURE' Q2; Q2 := 200 + ('IF' B 'THEN' 1 'ELSE' 0); 'INTEGER''PROCEDURE' Q3(X); 'VALUE' X; 'REAL' X; Q3 := 300 + X; 'PROCEDURE' FAIL(M, N); 'VALUE' M, N; 'INTEGER' M, N; 'IF' M # N 'THEN' 'BEGIN' OUTREAL(99, M); OUTREAL(99, N); OUTREAL(99, CASE) 'END' 'ELSE' CASE := CASE + 1; I := 1; X := 10.4; CASE := 0; B := 'FALSE'; FAIL(P(1, Q1), 101); FAIL(P(4, Q1), 220); FAIL(P(2, Q2), 200); FAIL(P(3, Q3), 310); FAIL(P(4, Q3), 620); OUTREAL(99, CASE) 'END' //RUN //OPTIONS(OPT,NOTRACE) //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I, J, K, K1; 'REAL' T1, T2; 'INTEGER''PROCEDURE' ACKERMANN(M, N); 'VALUE' M, N; 'INTEGER' M, N; ACKERMANN := 'IF' M = 0 'THEN' N + 1 'ELSE' 'IF' N = 0 'THEN' ACKERMANN(M - 1, 1) 'ELSE' ACKERMANN(M - 1, ACKERMANN(M, N - 1)); K := 16; K1 := 1; 'FOR' I := 1 'STEP' 1 'UNTIL' 6 'DO' 'BEGIN' T1 := CPUTIME; J := ACKERMANN(3, I); T2 := CPUTIME; 'IF' J # K - 3 'THEN' 'BEGIN' OUTREAL(99, I); OUTREAL(99, J) 'END'; OUTREAL(99, T2 - T1); OUTREAL(99, 3 * (T2 - T1) / (512 * K1 - 15 * K + 9 * I + 37) ); K1 := 4 * K1; K := 2 * K; 'END' 'END' //RUN //OPTIONS() //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' N; N := 3; 'BEGIN' 'ARRAY' A[1 : 'IF' N = 3 'THEN' 3 'ELSE' - 100]; 'INTEGER' N; N := 2; OUTREAL(99, N); 'END'; OUTREAL(99, N) 'END' //RUN //IMP 'BEGIN' %LONGREAL X 'INTEGER'I %EXTERNALROUTINESPEC OUTREAL('INTEGER'DUMMY,%LONGREAL VALUE) SELECT OUTPUT(99) %CYCLE I=2,1,100 OUTREAL(99,1/(I*I-1)) %REPEAT SELECT OUTPUT(99) 'END'OFPROGRAM //G.STREAM01 DD DISP=(NEW,PASS),UNIT=SCRATCH //ALGOL 'BEGIN' 'COMMENT' LIBRARY 9; 'INTEGER''ARRAY' EQ[1 : 3]; 'INTEGER' I; 'REAL' X, Y; 'PROCEDURE' INC(A, B); 'VALUE' A, B; 'REAL' A, B; 'IF' A < B 'THEN' EQ[1] := EQ[1] + 1 'ELSE' 'IF' A = B 'THEN' EQ[2] := EQ[2] + 1 'ELSE' EQ[3] := EQ[3] + 1; 'FOR' I := 1 'STEP' 1 'UNTIL' 3 'DO' EQ[I] := 0; 'FOR' I := 2 'STEP' 1 'UNTIL' 100 'DO' 'BEGIN' INREAL(98, X); Y := 1 / (I * I - 1); OUTREAL(99, Y); INC(X, Y) 'END'; 'FOR' I := 1 'STEP' 1 'UNTIL' 3 'DO' OUTREAL(99, EQ[I]); 'END' //G.SYSIN DD DSN=*.PRELIM.G.STREAM01,DISP=(OLD,DELETE) !//RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'REAL' X, Y; 'INTEGER' I, J; 'ARRAY' A[1 : 10]; X := Y := 1.0; I := J := 0; 'BEGIN' 'SWITCH' A := A1,A2,A3; 'PROCEDURE' P; 'BEGIN' X := 20; I := X + Y; Q(A[3], I + J) 'END'; 'PROCEDURE' Q(L, K); 'VALUE' K; 'LABEL' L; 'INTEGER' K; 'IF' K = 0 'THEN' 'GOTO' L; 'INTEGER''PROCEDURE' J; J := Y; 'REAL' I; 'REAL' 'PROCEDURE' Y; Y := X; 'INTEGER' X; A1 :; X := 10; Q(A[2], Y - X); A2 :; P; 'IF' I = 0 'OR' J = 0 'OR' X = 1.0 'OR' Y = 1.0 'THEN' OUTREAL(99, 100); A3 :; 'END'; 'IF' I = 0 'AND' J = 0 'AND' X = 1.0 'AND' Y = 1.0 'THEN' OUTREAL(99, 0) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' SUM; 'PROCEDURE' P1(S, R, I, B, RA, IA); 'STRING' S; 'REAL' R; 'INTEGER' I; 'BOOLEAN' B; 'REAL' 'ARRAY' RA; 'INTEGER''ARRAY' IA; SUM := SUM + R + I + ('IF' B 'THEN' 1 'ELSE' 0) + RA[1] + IA[1]; 'PROCEDURE' P2(BA, L, SW, PR, RPR, IPR, BPR); 'BOOLEAN' 'ARRAY' BA; 'LABEL' L; 'SWITCH' SW; 'PROCEDURE' PR; 'REAL' 'PROCEDURE' RPR; 'INTEGER''PROCEDURE' IPR; 'BOOLEAN' 'PROCEDURE' BPR; 'BEGIN' PR; SUM := SUM + RPR + IPR; 'IF' BPR 'THEN' 'GOTO' L; 'IF' BA[1] 'THEN' 'GOTO' SW[2] 'END'; 'PROCEDURE' P3(R, I, B, RA, IA, BA, L); 'VALUE' R, I, B, RA, IA, BA, L; 'REAL' R; 'INTEGER' I; 'BOOLEAN' B; 'REAL' 'ARRAY' RA; 'INTEGER''ARRAY' IA; 'BOOLEAN' 'ARRAY' BA; 'LABEL' L; 'BEGIN' SUM := SUM + R + I + RA[1] + IA[1] + ('IF' B 'THEN' 1 'ELSE' 0) + ('IF' BA[1] 'THEN' 1 'ELSE' 0); 'IF' BA[1] 'THEN' 'GOTO' L 'END'; 'REAL' R; 'BOOLEAN' B; 'REAL' 'ARRAY' RA[1 : 1]; 'INTEGER''ARRAY' IA[1 : 1]; 'BOOLEAN' 'ARRAY' BA[1 : 1]; 'INTEGER''PROCEDURE' IPR; IPR := 2 * SUM; 'REAL' 'PROCEDURE' RPR; RPR := 3 * SUM; 'BOOLEAN' 'PROCEDURE' BPR; BPR := 'NOT' B; 'PROCEDURE' PR; SUM := 5 * SUM + 1; 'SWITCH' SS := WORK, FAIL; SUM := 0; IA[1] := - 2; RA[1] := 3.55; BA[1] := 'FALSE'; B := 'TRUE'; R := 6.4; P1( , R, SUM, B, RA, IA); 'IF' SUM # 9 'THEN' OUTREAL(99, SUM); P2(BA, SS[2], SS, PR, RPR, IPR, BPR); 'IF' SUM # 276 'THEN' OUTREAL(99, SUM); WORK :; OUTREAL(99, 0); P3(4.6, - 200, 'TRUE', RA, IA, BA, 'IF' 'TRUE' 'THEN' SS[2] 'ELSE' FAIL); 'IF' SUM # 83 'THEN' OUTREAL(99, SUM); P1( , RPR, IPR, BPR, RA, IA); 'IF' SUM # 500 'THEN' OUTREAL(99, SUM); P3(RPR, IPR, BPR, RA, IA, BA, FAIL); 'IF' SUM # 3002 'THEN' OUTREAL(99, SUM); 'IF' 'FALSE' 'THEN' FAIL : OUTREAL(99, - 1); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' SUM; 'PROCEDURE' P1(S, R, I, B, RA, IA); 'STRING' S; 'REAL' R; 'INTEGER' I; 'BOOLEAN' B; 'REAL' 'ARRAY' RA; 'INTEGER''ARRAY' IA; SUM := SUM + R + I + ('IF' B 'THEN' 1 'ELSE' 0) + RA[1] + IA[1]; 'PROCEDURE' P2(BA, L, SW, PR, RPR, IPR, BPR); 'BOOLEAN' 'ARRAY' BA; 'LABEL' L; 'SWITCH' SW; 'PROCEDURE' PR; 'REAL' 'PROCEDURE' RPR; 'INTEGER''PROCEDURE' IPR; 'BOOLEAN' 'PROCEDURE' BPR; 'BEGIN' PR; SUM := SUM + RPR + IPR; 'IF' BPR 'THEN' 'GOTO' L; 'IF' BA[1] 'THEN' 'GOTO' SW[2] 'END'; 'PROCEDURE' P3(R, I, B, RA, IA, BA, L); 'VALUE' R, I, B, RA, IA, BA, L; 'REAL' R; 'INTEGER' I; 'BOOLEAN' B; 'REAL' 'ARRAY' RA; 'INTEGER''ARRAY' IA; 'BOOLEAN' 'ARRAY' BA; 'LABEL' L; 'BEGIN' SUM := SUM + R + I + RA[1] + IA[1] + ('IF' B 'THEN' 1 'ELSE' 0) + ('IF' BA[1] 'THEN' 1 'ELSE' 0); 'IF' BA[1] 'THEN' 'GOTO' L 'END'; 'REAL' R; 'BOOLEAN' B; 'REAL' 'ARRAY' RA[1 : 1]; 'INTEGER''ARRAY' IA[1 : 1]; 'BOOLEAN' 'ARRAY' BA[1 : 1]; 'INTEGER''PROCEDURE' IPR; IPR := 2 * SUM; 'REAL' 'PROCEDURE' RPR; RPR := 3 * SUM; 'BOOLEAN' 'PROCEDURE' BPR; BPR := 'NOT' B; 'PROCEDURE' PR; SUM := 5 * SUM + 1; 'SWITCH' SS := WORK, FAIL; SUM := 0; IA[1] := - 2; RA[1] := 3.55; BA[1] := 'FALSE'; B := 'TRUE'; R := 6.4; P1(RA, , , , , ); P1(SS, RA, RA, RA, SS, SS); P1(PR, SS, SS, SS, PR, PR); P1(SS[2], PR, PR, PR, SS[2], SS[2]); P1('TRUE', SS[2], SS[2], SS[2], 'TRUE', 'TRUE'); P1(R, 'FALSE', 'FALSE', R, R, R); P2( , , , , , , ); P2(RA, RA, RA, RA, RA, RA, RA); P2(SS, SS, SS[2], SS, SS, SS, SS); P2(PR, PR, PR, R, PR, PR, PR); P2(FAIL, SS, FAIL, FAIL, FAIL, FAIL, FAIL); P2('TRUE', 'TRUE', 'TRUE', 'TRUE', 'TRUE', 'TRUE', 'TRUE'); P2(R, R, R, R, R, R, R); P3( , , , , , , ); P3(RA, RA, RA, R, R, R, RA); P3(SS, SS, SS, SS, SS, SS, SS); P3(PR, PR, PR, PR, PR, PR, PR); P3(FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, SS); P3('TRUE', 'TRUE', R, 'TRUE', 'TRUE', 'TRUE', 'TRUE'); P3('TRUE', 'TRUE', R, R, R, R, R); WORK :; 'IF' 'FALSE' 'THEN' FAIL : OUTREAL(99, - 1); 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' I; 'REAL' R; 'BOOLEAN' B; 'ARRAY' A1[1 : I + B], A2[2 : 4, 5 : 7]; 'SWITCH' S := 'IF' R * P0 < 0 'THEN' L 'ELSE' L2; 'PROCEDURE' P0; R := I 'DIV' R; 'PROCEDURE' P1(F); 'REAL' F; B := I + R; L :; B := I > S; B := B 'OR' P0; R := B + A1; L2 :; R := B 'AND' B; I := P1(R); 'GOTO' B; I; P1(A2 / R); R[I] := 5; I := 'IF' B 'THEN' S 'ELSE' R; P1('IF' B 'THEN' B 'ELSE' I - I); R := B := B 'AND' B; 'FOR' I := B 'STEP' 1 'UNTIL' R 'DO' A1[S] := A2[2]; A1 := 0; 'IF' R 'THEN' 'GOTO' L; 'FOR' P0 := 1, 2 'DO' A2[B, I] := 0; 'BEGIN' 'ARRAY' Q[B : 1]; 'END'; P1(I, R); P1; 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I; 'INTEGER''ARRAY' A[1 : 10]; I := 1; 'FOR' A[I] := 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 'DO' I := I + 1; 'FOR' I := 1 'STEP' 1 'UNTIL' 10 'DO' 'IF' A[I] # I 'THEN' OUTREAL(99, I); OUTREAL(99, 0) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'ARRAY' V, A, C[1 : 1]; 'INTEGER' K; 'INTEGER''PROCEDURE' I; 'BEGIN' I := 1; K := K + 1 'END'; K := 0; A[I] := 1; C[I] := 3; 'FOR' V[I] := A[I] 'STEP' A[I] 'UNTIL' C[I] 'DO' ; OUTREAL(99, K) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY5; 'INTEGER''PROCEDURE' NONE; NONE := 1; NONE; SIN(1.0); ABS(3); LN(.2); EXP(4); ENTIER(NONE); SIGN(SQRT(8)); OUTREAL(99, NONE) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' NN; 'SWITCH' A := B[1], B[2]; 'SWITCH' B := A[G], A[2]; 'INTEGER''PROCEDURE' F(N, S); 'VALUE' N; 'INTEGER' N; 'SWITCH' S; 'BEGIN' NN := N; 'GOTO' S[1]; F := NN 'END'; 'INTEGER''PROCEDURE' G; 'BEGIN' 'INTEGER' N; N := NN; G := 0; NN := 'IF' N <= 1 'THEN' N 'ELSE' F(N - 1, A) + F(N - 2, A) 'END'; OUTREAL(99, F(20, A)) 'END' //RUN //OPTIONS(OPT,NOTRACE) //ALGOL 'BEGIN' 'COMMENT' LIBRARY 3; 'INTEGER'I,CL,N,REP; 'ARRAY' R,A,B[1:30],C[1:10]; 'REAL' J,ROOT,X; 'INTEGER''PROCEDURE' EVEN(X); 'VALUE' X; 'INTEGER'X; EVEN:='IF' X'DIV'2*2 = X 'THEN' 1 'ELSE' -1; 'PROCEDURE' GAMM(R,A,B,C); 'ARRAY' R,A,B,C; 'BEGIN' 'INTEGER'REP,I,CL; 'REAL' J,ROOT,X; REP:=100*N; OUTREAL(99,CPUTIME); 'FOR' CL:= 1 'STEP' 1 'UNTIL' REP 'DO' ; OUTREAL(99,CPUTIME); REP:=N; OUTREAL(99,CPUTIME); 'FOR' CL:=1 'STEP' 1 'UNTIL' REP 'DO' 'FOR' I:= 1 'STEP' 1 'UNTIL' 30 'DO' R[I]:=A[I]+B[I]; OUTREAL(99,CPUTIME); 'FOR' CL:=1 'STEP' 1 'UNTIL' REP 'DO' 'FOR' I:=1 'STEP' 1 'UNTIL' 30 'DO' R[I]:=A[I]*B[I]; OUTREAL(99,CPUTIME); REP:=6*N; X := .5; OUTREAL(99,CPUTIME); 'FOR' CL:= 1 'STEP' 1 'UNTIL' REP 'DO' 'BEGIN' J:=0.0; 'FOR' I:= 1 'STEP' 1 'UNTIL' 10 'DO' J:=(J+C[I])*X 'END'; OUTREAL(99,CPUTIME); OUTREAL(99,J); OUTREAL(99,CPUTIME); 'FOR' CL:= 1 'STEP' 1 'UNTIL' REP 'DO' 'BEGIN' J:=C[1]; 'FOR' I:=2 'STEP' 1 'UNTIL' 10 'DO' 'IF' C[I]>J 'THEN' J:=C[I] 'END'; OUTREAL(99,CPUTIME); J:=2; REP := 8*N; OUTREAL(99,CPUTIME); 'FOR' CL:=1 'STEP' 1 'UNTIL' REP 'DO' 'BEGIN' ROOT:=1.0; 'FOR' I:=1 'STEP' 1 'UNTIL' 5 'DO' ROOT:= 0.5*(ROOT+J/ROOT) 'END'; OUTREAL(99,CPUTIME); OUTREAL(99,ROOT); 'END' OF GAMM; I:=1; 'FOR' J:=104.5,3.7,-68.9,228.2,-1004.4,500.0,308.1,45.0,152.35,161.8 'DO' 'BEGIN' C[I]:=J; I:=I+1 'END'; 'FOR' I:=1 'STEP' 1 'UNTIL' 30 'DO' 'BEGIN' A[I]:=EVEN(I)*I*I; B[I]:=1-EVEN(I)*I*I 'END'; N := 2000; REP:=100*N; OUTREAL(99,CPUTIME); 'FOR' CL:= 1 'STEP' 1 'UNTIL' REP 'DO' ; OUTREAL(99,CPUTIME); REP:=N; OUTREAL(99,CPUTIME); 'FOR' CL:=1 'STEP' 1 'UNTIL' REP 'DO' 'FOR' I:= 1 'STEP' 1 'UNTIL' 30 'DO' R[I]:=A[I]+B[I]; OUTREAL(99,CPUTIME); 'FOR' CL:=1 'STEP' 1 'UNTIL' REP 'DO' 'FOR' I:=1 'STEP' 1 'UNTIL' 30 'DO' R[I]:=A[I]*B[I]; OUTREAL(99,CPUTIME); REP:=6*N; X := .5; OUTREAL(99,CPUTIME); 'FOR' CL:= 1 'STEP' 1 'UNTIL' REP 'DO' 'BEGIN' J:=0.0; 'FOR' I:= 1 'STEP' 1 'UNTIL' 10 'DO' J:=(J+C[I])*X 'END'; OUTREAL(99,CPUTIME); OUTREAL(99,J); OUTREAL(99,CPUTIME); 'FOR' CL:= 1 'STEP' 1 'UNTIL' REP 'DO' 'BEGIN' J:=C[1]; 'FOR' I:=2 'STEP' 1 'UNTIL' 10 'DO' 'IF' C[I]>J 'THEN' J:=C[I] 'END'; OUTREAL(99,CPUTIME); J:=2; REP := 8*N; OUTREAL(99,CPUTIME); 'FOR' CL:=1 'STEP' 1 'UNTIL' REP 'DO' 'BEGIN' ROOT:=1.0; 'FOR' I:=1 'STEP' 1 'UNTIL' 5 'DO' ROOT:= 0.5*(ROOT+J/ROOT) 'END'; OUTREAL(99,CPUTIME); OUTREAL(99,ROOT); GAMM(R,A,B,C); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'REAL' X, Y; 'PROCEDURE' DUM; ; 'REAL' 'PROCEDURE' A; A := X + ('IF' B 'THEN' 1 'ELSE' 0); 'BOOLEAN' B; S2 :; B := (('TRUE')); G :; 'BEGIN' 'INTEGER' I; X := - 3; 'IF' 'NOT' B 'THEN' 'GOTO' S2; I := 1; Y := A - I * X^2; DUM 'END'; OUTREAL(99, Y / 2) 'END' //RUN //ALGOL PROG : 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER'N,I; 'PROCEDURE' Q; 'BEGIN' 'ARRAY' A, D[1 : 1, 1 : N], E[0 : 0]; 'PROCEDURE' P(X, L); 'LABEL' L; 'INTEGER''PROCEDURE' X; 'COMMENT' (F1,G1): 'VALUE' F1: 'REAL' F1,G1; B : 'FOR' I := 1 'STEP' 1 'UNTIL' N, I + 1 'DO' C : 'GOTO' 'IF' X(A[1, 1] + I, 0) = 0 'THEN' L 'ELSE' R; M :; A[1, 1] := N; P(IN, PROG) 'END' Q; 'INTEGER''PROCEDURE' IN(F, G); 'VALUE' F; 'REAL' F, G; N := IN := 1; N := 2; OUTREAL(99, 1); Q; OUTREAL(99, 2); R :; OUTREAL(99, 3); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I; 'REAL' X; I := 1; 'FOR' X := .1 'STEP' X 'UNTIL' 1.0&6 'DO' I := I + 1; OUTREAL(99, I) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' A; 'INTEGER''PROCEDURE' F(X, Y); 'VALUE' X, Y; 'INTEGER' X, Y; A := F := X + 1; 'INTEGER''PROCEDURE' G(X); 'INTEGER' X; X := G := A + 2; A := 0; OUTREAL(99, A + F(A, G(A)) / G(A)) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'REAL' I, J; 'ARRAY' A[1 : 2, 1 : 3]; 'REAL' 'PROCEDURE' GPS(I, N, Z, V); 'REAL' I, N, Z, V; 'BEGIN' 'FOR' I := 1 'STEP' 1 'UNTIL' N 'DO' Z := V; GPS := 1 'END'; OUTREAL(99, GPS(J, 3.0, I, GPS(I, 2.0, A[I, J], I + J))); 'FOR' I := 1 'STEP' 1 'UNTIL' 2 'DO' 'FOR' J := 1 'STEP' 1 'UNTIL' 3 'DO' 'IF' A[I, J] # I + J 'THEN' OUTREAL(99, 11 * I + J) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY5; 'REAL' R; 'BOOLEAN' B; 'INTEGER''PROCEDURE' F(X); 'REAL' X; F := 0; 'INTEGER' I, N, S; 'INTEGER''PROCEDURE' G(Y); 'BOOLEAN' Y; G := 'IF' Y 'THEN' 2 'ELSE' 3; R := 3.5; N := 4; S := R + (1) + N; OUTREAL(99, S); 'BEGIN' 'REAL' 'ARRAY' RA[F('IF' 'TRUE' 'THEN' 0 'ELSE' 0) : 1]; 'ARRAY' A[ - 1 : F(0)]; 'REAL' 'PROCEDURE' Q; Q := R^2; S := 'IF' + 0 = 0 'THEN' SQRT(Q) 'ELSE' 1 'END'; OUTREAL(99, S); 'BEGIN' 'PROCEDURE' W(T, U); 'STRING' T, U; ; W( < A 'REAL' >, < B 'END' > ); 'FOR' I := 0 'DO' 'END'; 'IF' 2 = 2 'THEN' 'BEGIN' I := 1 'END' 'ELSE' I := 0; 'FOR' I := 5 'WHILE' R < N 'DO' C : 'BEGIN' B := 'TRUE'; N := 'IF' B 'OR' 'NOT' B 'THEN' G(B 'OR' B) 'DIV' S 'ELSE' 10; B := 'IF' B 'THEN' 'FALSE' 'OR' 'FALSE' 'ELSE' 'TRUE'; R := N / 2 'END'; OUTREAL(99, N); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' ET COMMENT; 'COMMENT' LIBRARY 1; 'REAL' C; 'ARRAY' D[ - 0 : + 1, 0&0 : 1.0]; 'INTEGER''PROCEDURE' R(C); 'REAL' C; R := 'IF' 'TRUE' 'THEN' C 'ELSE' R(0); D[0, 0] := C := C := 1; 'COMMENT' PROGRAM MODIFIED TO AVOID USE BEFORE DECLARATION; 'BEGIN' 'INTEGER''ARRAY' H, A[1 : C+D[0,1-(R(+1))]], J[0 :1]; 'SWITCH' B := (B[2]), L, 'IF' 'IF' A[1] = 0 'AND' 'NOT' 'FALSE' 'THEN' 'TRUE' 'ELSE' 'FALSE' 'THEN' B[A[1] + 1] 'ELSE' L; 'REAL' 'PROCEDURE' P; 'BEGIN' Q(A, B, C, A[1])ENCORE : (B[1], (1)); 'FOR' C := 1 'STEP' 1 'UNTIL' 'IF' 'FALSE' 'THEN' P 'ELSE' 1 'DO' 'FOR' C := 1, 2 'DO' ; P := (0) 'END' :P; 'PROCEDURE' Q(A, B, C, D)E : (E, F); 'INTEGER' F; 'SWITCH' B; 'INTEGER''ARRAY' A; 'REAL' C; 'REAL' D; 'LABEL' E; ; 'COMMENT' 'BEGIN' 'COMMENT' 'END'; A[1] := 0; L :; OUTREAL(99, P); C := C + 1 * 1^1; 'IF' C = 2 'THEN' 'GOTO' B[P + 3] 'END' 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' N; 'INTEGER''PROCEDURE' P(Q, R); 'INTEGER''PROCEDURE' Q; 'COMMENT' (R):'INTEGER''PROCEDURE' R; 'INTEGER''PROCEDURE' R; 'BEGIN' 'INTEGER' B; B := 3 * Q(R); P := B 'END'; 'INTEGER''PROCEDURE' A(F); 'INTEGER''PROCEDURE' F; A := 2 * F; 'INTEGER''PROCEDURE' B; 'BEGIN' N := N - 1; B := 'IF' N = 0 'THEN' 1 'ELSE' P(A, B) + 1 'END'; N := 2; N := P(A, B); OUTREAL(99, N) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 3; 'REAL' 'PROCEDURE' A(K, X1, X2, X3, X4, X5); 'VALUE' K; 'INTEGER' K; 'REAL' X1, X2, X3, X4, X5; 'BEGIN' 'REAL' 'PROCEDURE' B; 'BEGIN' K := K - 1; B := A := A(K, B, X1, X2, X3, X4) 'END'; 'IF' K <= 0 'THEN' A := X4 + X5 'ELSE' 'IF' B < 0 'THEN' 'END'; OUTREAL(99, CPUTIME); OUTREAL(99, A(10, 1, - 1, - 1, 1, 0)); OUTREAL(99, CPUTIME); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' J, K, S; 'INTEGER''PROCEDURE' F(N); 'VALUE' N; 'INTEGER' N; 'BEGIN' 'INTEGER' I, L; 'FOR' I := N, S 'DIV' 2 'WHILE' S < 16 'OR' S = 28 'DO' 'BEGIN' S := S + I + N; L := I 'END'; F := N + L; 'END' F; S := - 1; 'FOR' J := F(2), F(3) 'WHILE' S = 97 'DO' 'BEGIN' S := S + F(5) + J + S; K := J 'END'; S := S + K; OUTREAL(99, S) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'REAL' 'PROCEDURE' G(X); 'REAL' X; G := X + 1; 'REAL' 'PROCEDURE' A(H); 'REAL' 'PROCEDURE' H; 'COMMENT' (H1): 'REAL' H1; 'BEGIN' 'REAL' 'PROCEDURE' LOC(X); 'REAL' X; LOC := H(G(X)); A := LOC(0); 'END' A; 'REAL' 'PROCEDURE' B(F, H); 'REAL' 'PROCEDURE' F; 'COMMENT' (F1): 'REAL' F1; 'REAL' 'PROCEDURE' H; 'COMMENT' (H1): 'REAL' 'PROCEDURE' H1; B := F(H(F) + A(G) + G(1)); OUTREAL(99, B(G, A)) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'PROCEDURE' P(F); 'REAL' 'PROCEDURE' F; 'COMMENT' (F1):'LABEL' F1; F((M)); B1 :; 'BEGIN' 'REAL' 'PROCEDURE' Q(L); 'LABEL' L; 'BEGIN' 'GOTO' L; Q := 0; OUTREAL(99, 1) 'END'; B2 :; 'BEGIN' 'REAL' I; 'GOTO' N; I := 2; OUTREAL(99, I) 'END'; N :; P(Q); OUTREAL(99, 3); 'END' B1; OUTREAL(99, 4); M :; OUTREAL(99, 5) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' X, N, K; 'REAL' 'PROCEDURE' SIGMA(I, K, L, T); 'VALUE' L; 'INTEGER' I, K, L; 'REAL' T; 'BEGIN' 'REAL' X; X := 0; 'FOR' I := K 'STEP' 1 'UNTIL' L 'DO' X := T + X; SIGMA := X 'END' SIGMA; X := SIGMA(N, 1, 4, SIGMA(K, 1, N, 2) - 1); 'COMMENT' WORKING IN AUGUST 1960 AT AMSTERDAM; OUTREAL(99, X) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'REAL' 'PROCEDURE' R(A); 'REAL' A; 'BEGIN' 'INTEGER''PROCEDURE' P(B, C); 'INTEGER' B, C; P := B + C; R := P(A + 1, A) 'END' R; 'REAL' X; 'BEGIN' 'REAL' Y; Y := 4; X := R(R(Y + 1)) 'END'; OUTREAL(99, X) 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'COMMENT' THIS PROGRAM HAS BEEN MODIFIED TO AVOID USE BEFORE DECLARATION AND ALSO TO REMOVE THE TYPE CHANGES ON ARRAYS TO VALUE; 'INTEGER''ARRAY' A[16384 : 16385, - 16383 : - 16382]; 'INTEGER' S; 'ARRAY' B[1 : 2, 0 : 2]; 'PROCEDURE' P(A, B, C, D); 'VALUE' B, C; 'REAL' A, B; 'ARRAY' C, D; 'BEGIN' A := A + 1; S := S + A + B + C[1, 2] + D[1, 2]; D[1, 2] := 2 'END'; A[16384, - 16383] := 3.0; B[1, 2] := A[16384, - 16383]; 'BEGIN' 'ARRAY' G[1 : B[1, 2], 0 : 2]; S := 0; G[1, 0] := G[2, 0] := G[3, 0] := G[1, 1] := G[2, 1] := G[3, 1] := G[1, 2] := G[2, 2] := G[3, 2] := 1; P(B[1, 2], B[1, 2], G, B); S := S + B[1, 2]; OUTREAL(99, S) 'END' 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER'I, 'ARRAY' A[ 1 : 1 ]; I := A[1] := 1; OUTREAL(99, I + A[1]) 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' X, Y; X := + 2Y := - 3; 'IF' X < - Y 'THEN' 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' X, Y; X :=; 'END' //RUN //ALGOL 'BEGIN' 'INTEGER' X, Y; X := + 3 := Y 'END' //RUN //ALGOL 'BEGIN' 'REAL' W, V; 'REAL' X, Y, Z; X := + 6.0; Y := - 2.931; Z := 4^.2; W := 10, 000; 'END' //RUN //ALGOL 'BEGIN' 'REAL' V; V := 3.5&( - 3); 'END' //RUN //ALGOL 'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' N; 'REAL' R; N := 2; R := 2.5&N; OUTREAL(99, R); 'END' //RUN //ALGOL 'BEGIN' 'REAL' X, Y, Z; Y := 2.0; X := 2.5; Z := 5Y * (2 + X); 'END' //RUN //ALGOL 'BEGIN' 'REAL' Y1, Y2; Y1 := Y2 := 1; REPEAT :; 'IF' Y1 > 0 'THEN' 'GOTO' STOP'GOTO' REPEAT; STOP :; 'END' //RUN //OPTIONS(QUOTES) //ALGOL 'PROGRAM'PETE; 'BEGIN' 'PROCEDURE'JIM(L,S,ST); 'VALUE'L; 'LABEL'L; 'SWITCH'S; 'STRING'ST; 'ALGOL'; 'PROCEDURE'FRED; 'EXTERNAL'; 'PROCEDURE'GILES; 'FORTRAN'; 'OWN''REAL'X; 'INTEGER'I,J,K; 'BOOLEAN'B1,B2; 'ARRAY'A[1:10]; 'FOR'I:=1 'STEP'1 'UNTIL'10,I+1 'WHILE'B1'AND''TRUE''DO' 'IF'K 'GT'J 'OR'K 'GE'J 'THEN''GOTO'END 'ELSE''GO''TO'END; B1:= I 'EQ'J 'IMPL'K 'NE'J 'EQUIV''FALSE'; B2:='NOT'K 'LE'K 'OR'K 'LT'J; 'CODEON'; 'CODEOFF'; I:=(J'DIV'K)'POWER'I; 'COMMENT'ALL KEYWORDS USED; END:'END'TEST PROG //OPTIONS() //ALGOL 'COMMENT' CHECK THAT FAULTY ASSIGNMENT TO PROCEDURE NAME IS DETECTED; 'BEGIN' 'INTEGER'C; 'INTEGER''PROCEDURE' CHSP(U); 'INTEGER'U; 'BEGIN' 'INTEGER'X; 'IF' U