Question: 3. Consider this program proc main int x, z; proc A; proc B; int x, z; { x := 1; call C; print x; }

3. Consider this program proc main

int x, z; proc A; proc B; int x, z; { x := 1; call C; print x; } (end B) proc C; int a, z; { x := 3; call D; print x; } (end C) { x := 2; call B; print x; } (end A) proc D; int x, b; proc E; int x; { x := 4; call F; print x; } (end E) proc F; { print x; x := 6; } (end F) { x := 5; call E; print x; } (end D) { x := 0; call A; print x; } (end main)

(a) What is the program output (assuming static scoping). (b) List the units that proc C can call (assuming static scoping). (c) Specify the referencing environment of proc E (assuming static scoping). (d) What is the corresponding output (assuming dynamic scoping) (e) Specify the referencing environment of proc E (assuming dynamic scoping).

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!