Call-by-Value, Call-by-address, Call-by-Name 的問題
若參數執行下列虛擬碼使用Call-by-Valhe, Call-by-Address, Call-by-Name,計算執行後,x與y最後的值分別為何?Program main();
int x,y;
procedure SUB (int a, b, c, d);
begin
b:=a+d;
a:=c;
d:=d+1;
return
end;
begin
x:=1;
y:=2;
SUB ( x, y, x+y, y );
END
我是知道Call-by-Value是形式參數的結果不回傳,Call-by-Address是直接存取實際參數位址的內容,Call-by-Name是每個引用所對應的參數地方都重新運算。
但我還是不知道這隻程式該怎麼跑。
謝謝大家