previous up next
Go backward to Recursively Defined Abstractions
Go up to Top
RISC-Linz logo

Example

(alias A=loc1, alias B=loc2);
proc ADD = (rec ADD: comm.
if @A=0 then skip else
B:=@B+1; A:=@A-1; call ADD fi)
in A:=2; B:=3; call ADD

=> alias A=loc1, alias B=loc2,
proc ADD = (rec ADD: comm.
if @loc1=0 then skip else
loc2:=@loc2+1; loc1:=@loc1-1; call ADD fi)
in A:=2; B:=3; call ADD

=> loc1:=2; loc2:=3;
(rec ADD: comm.
if @loc1=0 then skip else
loc2:=@loc2+1; loc1:=@loc1-1; call ADD fi)

=> loc1:=2; loc2:=3;
if @loc1=0 then skip else
loc2:=@loc2+1; loc1:=@loc1-1; (rec ADD: ...fi) fi)


Author: Wolfgang Schreiner
Last Modification: April 2, 1998

previous up next