x : integer := 3 //global scope
y : integer := 4 //global scope
procedure add
x := x + y
procedure second(P : procedure)
x : integer := 5
P()
procedure first
y : integer := 6
second(add)
first() //first procedure call in the main function
write integer(x) //function to print the value of a variable
After first() is run, add() modifies second::x, not ::x right? So the output is 3... but the answer given is: Dynamic Scope (shallow binding): (x=5+y=6)=11