
'BEGIN'

    'COMMENT' library 1;

    'INTEGER' 
        i; 
    'REAL' 
        x; 
    x := 3.2; 
    i := - 2; 
    outreal(1, i^x)
'END' 


!ALGOL

'BEGIN'

    'COMMENT' library 1;

    'INTEGER' 
        i, 
        j; 
    i := 0; 
    j := - 2; 
    outreal(1, i^j)
'END' 


!ALGOL

'BEGIN'

    'COMMENT' library 1;

    'INTEGER' 
        i; 
    'REAL' 
        x; 
    x := 0.0; 
    i := - 2; 
    outreal(1, x^i)
'END' 



!ALGOL

'BEGIN'

    'COMMENT' library 1;
    'INTEGER' 'PROCEDURE' p(b); 
        'VALUE' 
            b; 
        'BOOLEAN' 
            b; 
        p := ('IF' b 'THEN' 1 'ELSE' 3.3) 'DIV' 6; 

    outreal(1, p('TRUE')); 
    outreal(1, p('FALSE'))
'END' 


!ALGOL

'BEGIN'

    'COMMENT' library 1;
    'INTEGER' 
        i, 
        j; 
    i := 2; 
    j := 3; 
    outreal(1, i^j 'DIV' j)
'END' 


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



!ALGOL

'BEGIN'

    'COMMENT' library 1;

    'INTEGER' 
        i, 
        j; 
    i := 3; 
    j := - 2; 
    outreal(1, (81 * i^j) 'DIV' 2); 
'END' 


!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(1, i)
        'ELSE'
            'GOTO' exit; 
        s2 :; 
        'IF' i \= 2 'THEN' 
            outreal(1, i)
        'ELSE'
            'GOTO' exit; 
        s3 :; 
        'IF' i \= 3 'THEN' 
            outreal(1, i)
        'ELSE'
            'GOTO' exit; 
        s4 :; 
        'IF' i \= 4 'THEN' 
            outreal(1, i)
        'ELSE'
            'GOTO' exit; 
        exit :; 
        'END'; 
'END' 


!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(1, i)
        'ELSE'
            s2 : 'IF' i \= 2 'THEN' 
                outreal(1, i)
        'END'; 
    s3 :; 
    outreal(1, i); 
    'GOTO' s[i + 1]; 
    s4 :; 
    outreal(1, i)
'END' 




!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(1, 10); 
        s2 :; 
        outreal(1, 20); 
        outreal(1, i)
        'END'; 
    s3 :; 
    outreal(1, 30)
'END' 


!KDF9
