BEGIN REAL X, Y, Z; COMMENT LIBRARY A6, A30; COMMENT A6, A30 ARE THE STANDARD FUNCTIONS AND INPUT/OUTPUT ROUTINES; REALPROCEDURE CPUTIME; EXTERNAL REALCPUTIME; INTEGER I, N, K, L, M, CASE; INTEGERARRAY E1[1 : 1], E2[1 : 1, 1 : 1], E3[1 : 1, 1 : 1, 1 : 1]; PROCEDURE P0; ; PROCEDURE P1(X); VALUE X; REAL X; ; PROCEDURE P2(X, Y); VALUE X, Y; REAL X, Y; ; PROCEDURE P3(X, Y, Z); VALUE X, Y, Z; REAL X, Y, Z; ; ARRAY TT[1 : 43]; PROCEDURE PRINTTT; BEGIN INTEGER I; REAL X, MIX, LOOP; COMMENT CALCULATE AND PRINT TIME DIFFERENCES; FOR I := 1 STEP 1 UNTIL 42 DO BEGIN TT[I] := X := TT[I + 1] - TT[I]; OUTREAL(99, X) END ; COMMENT CALCULATE ALGOL MIX FIGURE AS FROM CCU11, MAKING ALLOWANCE FOR STATEMENT REPETITIONS; LOOP := X; MIX := 0.0; I := 1; FOR X := 1000, 875, 769, 3337, 6242, 2750, 187.5, 125, 430, 995.6, 160.3, 384.6, 500, 166.7, 1390, 154.5, 442, 4759, 5321, 148, 4759, 0, 59, 59, 39, .73, 201, 94, 1020, 1490, 278, 831, 644, 1750, 591, 27.3, 454.5, 788, 2316, 2316, 6053 DO BEGIN MIX := MIX + (TT[I] - LOOP) * X / N; I := I + 1 END ; MIX := MIX + LOOP * 17800 / N; OUTREAL(99, 6524512 / MIX) END ; X := Y := Z := 1.0; L := K := M := 1; E1[1] := 1; CASE := 1; N := 10000; COMMENT N SHOULD BE GIVEN A LARGE ENOUGH VALUE FOR THE RESOLUTION OF THE CLOCK NOT TO BE A LIMITING FACTOR TO THE ACCURACY. IF N IS MADE TOO LARGE, THEN PROCESSOR TIME WILL BE WASTED; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := 1.0; X := 1.0; X := 1.0; X := 1.0; X := 1.0; X := 1.0; X := 1.0; X := 1.0; X := 1.0; X := 1.0; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := 1; X := 1; X := 1; X := 1; X := 1; X := 1; X := 1; X := 1; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := Y; X := Y; X := Y; X := Y; X := Y; X := Y; X := Y; X := Y; X := Y; X := Y; X := Y; X := Y; X := Y; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := Y + Z; X := Y + Z; X := Y + Z; X := Y + Z; X := Y + Z; X := Y + Z; X := Y + Z; X := Y + Z; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := Y * Z; X := Y * Z; X := Y * Z; X := Y * Z; X := Y * Z; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := Y / Z; X := Y / Z; X := Y / Z; X := Y / Z; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; K := 1; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN K := 1.0; K := 1.0; K := 1.0; K := 1.0; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN K := L + M; K := L + M; K := L + M; K := L + M; K := L + M; K := L + M; K := L + M; K := L + M; K := L + M; K := L + M; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN K := L * M; K := L * M; K := L * M; K := L * M; K := L * M; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN K := L DIV M; K := L DIV M; K := L DIV M; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN K := L; K := L; K := L; K := L; K := L; K := L; K := L; K := L; K := L; K := L; K := 1; K := 1; K := L; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := L; X := L; X := L; X := L; X := L; X := L; X := L; X := L; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN L := Y; L := Y; L := Y; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := Y**2; X := Y**2; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := Y**3; X := Y**3; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO X := Y**Z; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN E1[1] := 1; E1[1] := 1; E1[1] := 1; E1[1] := 1; E1[1] := 1; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN E2[1, 1] := 1; E2[1, 1] := 1; E2[1, 1] := 1; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN E3[1, 1, 1] := 1; E3[1, 1, 1] := 1; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN L := E1[1]; L := E1[1]; L := E1[1]; L := E1[1]; L := E1[1]; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN BEGIN REAL A; END ; BEGIN REAL A; END ; BEGIN REAL A; END ; BEGIN REAL A; END ; BEGIN REAL A; END ; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN ARRAY A[1 : 1]; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN ARRAY A[1 : 500]; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN ARRAY A[1 : 1, 1 : 1]; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN ARRAY A[1 : 1, 1 : 1, 1 : 1]; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN GOTO L0; L0 :; GOTO L1; L1 :; GOTO L2; L2 :; GOTO L3; L3 :; GOTO L4; L4 :; GOTO L5; L5 :; GOTO L6; L6 :; GOTO L7; L7 :; GOTO L8; L8 :; GOTO L9; L9 :; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN SWITCH SS := PQ; GOTO SS[1]; PQ :; END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO X := SIN(Y); TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO X := COS(Y); TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := ABS(Y); X := ABS(Y); X := ABS(Y); X := ABS(Y); X := ABS(Y); END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO X := EXP(Y); TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO X := LN(Y); TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO X :=SQRT(Y); TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO X := ARCTAN(Y); TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := SIGN(Y); X := SIGN(Y); X := SIGN(Y); END ; TT[CASE] := CPUTIME; CASE := CASE+1; FOR I := 1 STEP 1 UNTIL N DO BEGIN X := ENTIER(Y); X := ENTIER(Y); END ; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO P0; TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO P1(X); TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO P2(X, Y); TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO P3(X, Y, Z); TT[CASE] := CPUTIME; CASE := CASE + 1; FOR I := 1 STEP 1 UNTIL N DO ; TT[CASE] := CPUTIME; PRINTTT; END