MC logo

P0 Call Stack


Call Stack Problems

(*
 * This program does nothing of any use.
 *)
PROGRAM fred2(input, output);
    var t,v :  integer;
    PROCEDURE B(VAR a, b: integer);
        BEGIN
            a := 5;
            b := 10;
            t := 15
        END;
    PROCEDURE A(VAR q: integer);
        PROCEDURE AA(t: integer);
            VAR s: integer;
            BEGIN
                t := t + 1;
                v := v - 1;
                writeln("t = ", t);
                B(t,s);
                writeln('t = ', t, ' v = ', 
                            v, ' s = ', s);
            END;
        BEGIN
            q := 4;
            v := t;
            AA(7);
        END;
    BEGIN 
        t := 1;
        v := 2;
        A(v);
        writeln('t = ', t, ' v = ', v);
    END.

Output:


t = 8
t = 5 v = 0 s = 10
t = 15 v = 0

>>