
'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' 


!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(1, i); 
            outreal(1, j); 
            outreal(1, 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(1, case)
'END' 


!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(1, i); 
    outreal(1, 0)
'END' 



!ALGOL

'BEGIN'

    'COMMENT' library 1;

    'INTEGER' 
        i, 
        j, 
        k; 
    'BOOLEAN' 
        p, 
        t; 
    'PROCEDURE' fail; 
        'BEGIN'
        outreal(1, i); 
        outreal(1, 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(1, 0)
'END' 


!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(1, u); 
            outreal(1, v); 
            outreal(1, 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(1, 0)
'END' 


!ALGOL

'BEGIN'

    'COMMENT' library 1;

    'REAL' 
        x; 
    x := + + 1.0; 
    x := - - x; 
    outreal(1, + - x)
'END' 



!ALGOL

'BEGIN'

    'COMMENT' library 1;

    'BOOLEAN' 
        b; 
    b := 'NOT' 'TRUE'; 
    b := 'NOT' ( 'NOT' b); 
    b := 'NOT' 'NOT' b; 
    outreal(1, 'IF' b 'THEN' 0 'ELSE' 1)
'END' 


!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(1, x + notfunction(x) + i)
'END' 


!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(1, p(10.0) + q(100.0))
'END' 




!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(1, x)
'END' 


!KDF9
