begin 
comment lib 1;
    array 
        a[1 : 3], 
        b[1 : 3, 1 : 3]; 
    real procedure sum(dim, a); 
        value 
            dim; 
        integer 
            dim; 
        array 
            a; 
        sum := 
            if dim = 1 then 
                (a[1] + a[2] + a[3])
            else 
                (a[1, 1] + a[1, 2] + a[1, 3] + a[2, 1] + a[2, 2]
                    + a[2, 3] + a[3, 1] + a[3, 2] + a[3, 3]); 

    integer 
        i, 
        j; 
    for i := 1, 
        2, 
        3 do 
        begin 
        a[i] := i * i; 
        for j := 1, 
            2, 
            3 do 
            b[i, j] := a[i] + j
        end; 
    outreal(1,sum(1, a)); 
    outreal(1,sum(2, b)); 
end 

algol

begin 
comment lib 1;
    procedure recursive(level, l); 
        value 
            level; 
        integer 
            level; 
        label 
            l; 
        begin 
        if level \= 0 then 
            recursive(level - 1, exit)
        else 
            goto l; 
       exit :; 
        outreal(1,level)
        end; 

    recursive(10, exit); 
   exit :; 
end 

algol

begin 
comment lib5;
    integer 
        i; 
    boolean 
        b; 
    procedure labelbyvalue(l); 
        value 
            l; 
        label 
            l; 
        ; 

    procedure labelbyname(l); 
        label 
            l; 
        begin 
        i := 1; 
        if b then 
            goto l
        end; 

    switch s := 
        l1, 
        l2; 
    integer procedure nottouse; 
        nottouse := sqrt( - 1); 

    integer procedure one; 
        one := 1; 

    b := false; 
    labelbyname(s[nottouse]); 
    b := true; 
    i := 2; 
    labelbyname(s[i]); 
   l1 :; 
    outreal(1,1); 
   l2 :; 
    outreal(1,2); 
    labelbyvalue(s[one]); 
end 


algol

begin 
comment lib 1;
    integer array 
        a[1 : 9]; 
    integer 
        i, 
        s; 
    procedure dummy(a); 
        value 
            a; 
        array 
            a; 
        sum(a); 

    procedure sum(a); 
        array 
            a; 
        for i := 1 step 1 until 9 do 
            begin 
            s := s + a[i]; 
            a[i] := 0
            end; 

    s := 0; 
    for i := 1 step 1 until 9 do 
        a[i] := i; 
    dummy(a); 
    outreal(1,s); 
    for i := 1 step 1 until 9 do 
        if a[i] \= i then 
            outreal(1,i)
end 

algol

begin 

    comment lib1;

    real 
        x, 
        y; 
    integer 
        i; 
    for x := @6, 
        @+6, 
        @-6, 
        .6, 
        6, 
        6.6, 
        .6@6, 
        .6@+6, 
        .6@-6, 
        6@6, 
        6@+6, 
        6@-6, 
        6.6@6, 
        6.6@+6, 
        6.6@-6 do 
        outreal(1, x); 
    outreal(1, .0000000000000000123456789123456789); 
    outreal(1, 3.1415926535897932384626433832795028841972); 
    x := y := .0000001; 
    for i := 1 step 1 until 13 do 
        begin 
        outreal(1, x); 
        outreal(1, y); 
        x := 10.0 * x; 
        y := 110 * x / 10.0
        end 
end 


algol

begin 
    procedure p(l); 
        integer 
            l; 
       l : begin 
        real 
            a; 
        goto l; 
       l :; 
        goto ll
        end; 

    p(1); 
   ll :; 
end 


algol

begin 

    comment lib 1;

    integer 
        s; 
    procedure p(f, g); 
        procedure 
            f, 
            g; 
        begin 
        integer 
            x; 
        procedure r; 
            begin 
            outreal(1, s);
            outreal(1, x)
            end; 

        s := s + 1; 
        x := s; 
        if s = 1 then 
            p(f, r)
        else 
            f(g, r)
        end p; 

    procedure q(f, g); 
        procedure 
            f, 
            g; 
        begin 
        f; 
        g
        end q; 

    s := 0; 
    p(q, p); 
end 


algol

begin 

    comment lib 1;

    integer 
        n1, 
        n2; 
    procedure dummy; 
        ; 

    procedure p(x, l); 
        value 
            x; 
        integer 
            x; 
        procedure 
            l; 
        begin 
        procedure gotol1; 
            goto l1; 

        if x = n1 then 
            p(x - 1, gotol1)
        else if x = n2 then 
            l
        else 
            p(x - 1, l); 
        l1 :; 
        outreal(1, x)
        end p; 

    n1 := 4; 
    n2 := 2; 
    p(5, dummy); 
    n2 := 0; 
    p(7, dummy); 
end 


algol

begin 

    comment lib 1;

    integer 
        s; 
    procedure p(f, g); 
        procedure 
            f, 
            g; 
        begin 
        integer 
            x; 
        procedure r(f, g); 

        procedure f, g;
            begin 
            outreal(1, s);
            outreal(1, x)
            end; 

        s := s + 1; 
        x := s; 
        if s = 1 then 
            p(f, r)
        else 
            f(g, r)
        end p; 

    procedure q(f, g); 
        procedure 
            f, 
            g; 
        begin 

    f( q, q );
    g( q, q)
        end q; 

    s := 0; 
    p(q, p); 
end 




algol

begin 

    comment lib 1;

    integer 
        n1, 
        n2; 

    procedure p(x, l); 
        value 
            x; 
        integer 
            x; 
        label 
            l; 
        begin 

        if x = n1 then 
            p(x - 1, l1)
        else if x = n2 then 
            goto l
        else 
            p(x - 1, l); 
        l1 :; 
                outreal(1, x)
        end p; 

    n1 := 4; 
    n2 := 2; 
    p(5, l2); 
    n2 := 0; 
    p(7, l2); 

    l2:;
end 


kdf9