# static and initial procedure main() write("starting") p() write("call p again") p() write("finished") end procedure p() static n initial{ n:=1; write("p() initial, n=", n)} #first call only n +:= 1 write("p() outside initial, n=", n) #every call end