Traces of Table During compiles
Example 1
1 var
2 u,v,x,y;
3 procedure p(u);
4 var
5 y,w;
6 procedure p1(t);
7 var
8 x;
9 if t>0 then
Name Num Parms Kind level Address
1 u 0 var 0 3
2 v 0 var 0 4
3 x 0 var 0 5
4 y 0 var 0 6
5 p 1 proc 0 1
6 u 0 var 1 3
7 y 0 var 1 4
8 w 0 var 1 5
9 p1 1 proc 1 2
10 t 0 var 2 3
11 x 0 var 2 4
10 begin
11 y:=y-10;
12 u := u-20;
13 p(t-1)
14 end
15 else
16 begin
17 x:= 14;
18 y:= 15;
19 v:=x+y
20 end;
21 begin
Name Num Parms Kind level Address
1 u 0 var 0 3
2 v 0 var 0 4
3 x 0 var 0 5
4 y 0 var 0 6
5 p 1 proc 0 1
6 u 0 var 1 3
7 y 0 var 1 4
8 w 0 var 1 5
9 p1 1 proc 1 3
22 y:= 0;
23 p1(u)
24 end;
25 begin
Name Num Parms Kind level Address
1 u 0 var 0 3
2 v 0 var 0 4
3 x 0 var 0 5
4 y 0 var 0 6
5 p 1 proc 0 35
26 u := -20;
27 p(2)
28 end.
Compile successful...no errors!
Example 2
1 var
2 x,y;
3 procedure p1(u,x);
4 var
5 y;
6 begin
Name Num Parms Kind level Address
1 x 0 var 0 3
2 y 0 var 0 4
3 p1 2 proc 0 1
4 u 0 var 1 3
5 x 0 var 1 4
6 y 0 var 1 5
7 y := u + x;
8 x := 2
9 end;
10 procedure p2(u,v);
11 procedure x();
12 y:=u + v;
Name Num Parms Kind level Address
1 x 0 var 0 3
2 y 0 var 0 4
3 p1 2 proc 0 2
4 p2 2 proc 0 10
5 u 0 var 1 3
6 v 0 var 1 4
7 x 0 proc 1 11
13 x();
Name Num Parms Kind level Address
1 x 0 var 0 3
2 y 0 var 0 4
3 p1 2 proc 0 2
4 p2 2 proc 0 10
5 u 0 var 1 3
6 v 0 var 1 4
7 x 0 proc 1 12
14 begin
Name Num Parms Kind level Address
1 x 0 var 0 3
2 y 0 var 0 4
3 p1 2 proc 0 2
4 p2 2 proc 0 18
15 x:=1;
16 y:=2;
17 p1(x,3);
18 p2(4,y);
19 end.
Compile successful...no errors!