ниже представляет собой программу, в статически-Scoped языке:Не могли бы вы объяснить, как эта программа выполняется?
program main
int x, y;
void p1(value int y, void q(reference int)) {
void p2(reference int x) {
x := y + 2;
print(x);
q(y);
}
if x = y then q(y) else p1(y+1, p2)
}
void p2(reference int x) {
x := y + 2;
print(x);
}
x := 2;
y := x;
p1(0, p2);
end main
от «значение» это означает, что параметр передается по значению, «ссылка» в качестве ссылки.
Будет ли вызов функции «q (y)» в p2 вызвать бесконечный цикл?
Является ли язык Ада? – YWE
должен быть Ада-подобным. но я предполагаю, что это псевдокод. фактический вопрос заключается в построении контурной диаграммы, показывающей структуру вложения контуров. – pippoflow
Откуда у вас этот код или псевдокод? Какая школа? Я никогда раньше не видел такого кода. – YWE