Questions

  1. Runtime Stack
      program main();        Assume parameters are passed by value
        var A,B: integer;
        procedure one(X,Y: integer);
          procedure two(A: integer);
          begin
            B := B + A;
          end;
        begin
          if (X = 1) then two(Y);
          else begin B := B + 1; one(X-1,Y); end;
         L1: end;
      begin
         A := 3; B := A+1;
         one(A,B); 
     L0: write(B);
      end.
    
  2. Parameter Passing
    Given the following program:
    program main();
    var A,B: integer;
      procedure new(B,C : integer);
      begin
        B := B + C; C := 5;
        write(A,B,C);
      end;
    begin
      A := 3; B := 4; 
      new(A,B); 
      write(A,B);
    end.
    
    What five values get printed out if the parameters are passed
  3. Arrays
    Suppose we have a 3 dimensional array int A[1..5][0..4][2..8].