algol에 쓰이는 call by name 함수 호출 방식

mrx@Google의 이미지

program main(...);
var y:integer;
procedure p(x:integer);
begin x=x+1; write(x,y) end;
begin
y=1;p(y); write(y)
end

이 코드가 정확한 문법을 지킨건지는 확실하지 않지만 내용을 이렇습니다.

제가 생각하기에 출력결과가 2 2 2 가 되어야 할거 같은데 혹시 아시는 분 계신가요?