ВУЗ:
Составители:
р:=l; {на начало П}
100: l:=П(р); {очередная лексема]
n:=l[1]; k:=l[2];
case n of
0: inst (k); {метка - в стек}
5: inst (agp(l)); {адрес - в стек}
1,3,4: inst (cog(agp(l))); {значение -- в стек}
2: {знак операции}
case k of
1{ .}: goto 999 {на конец}
8{ +}: begin ontst (у); ontst (x); inst(x+y) end;
9{ -}: begin ontst (у); ontst (x); inst(x-y) end;
…{аналогично для *,/ и других операций}
14{ }: begin ontsk (x); inst (notx) end;
5{:=} begin ontst (x); ontst (А); присв (А,х) end;
21{ !}:begin ontst (р); goto 100 end;
22{!F}:begin ontst (pl); ontst (B);
if B=false then begin p:=pl;
goto 100 end end;
23{ R}:begin outst(A); read(x); присв(А,х) end;
24{ w}:begin outst (x); writeln(x) end;
end
end
p:=p+1;
goto 100;
999;
6 Интерпретация SOL
Как известно, интерпретатор анализирует исходную
программу каждый раз, когда она должна быть выполнена. При
этом, как правило, процесс интерпретации разделяют на два этапа-
На первом этапе интерпретатор просматривает всю программу (как,
примерно, компилятор) и представляет ее в форме ,удобной для
последующей обработки. На втором этапе выполняется это
внутреннее представлением
В соответствии с этим интерпретатор для SOL должен
состоять из двух блоков: блока анализа и блока интерпретации.
6.1 Внутреннее представление программы и ее объектов
Построение блока анализа ориентировано на списковые
языки.
Каждый SOL-оператор во внутреннем представлении имеет
26
р:=l; {на начало П} 100: l:=П(р); {очередная лексема] n:=l[1]; k:=l[2]; case n of 0: inst (k); {метка - в стек} 5: inst (agp(l)); {адрес - в стек} 1,3,4: inst (cog(agp(l))); {значение -- в стек} 2: {знак операции} case k of 1{ .}: goto 999 {на конец} 8{ +}: begin ontst (у); ontst (x); inst(x+y) end; 9{ -}: begin ontst (у); ontst (x); inst(x-y) end; …{аналогично для *,/ и других операций} 14{ }: begin ontsk (x); inst (notx) end; 5{:=} begin ontst (x); ontst (А); присв (А,х) end; 21{ !}:begin ontst (р); goto 100 end; 22{!F}:begin ontst (pl); ontst (B); if B=false then begin p:=pl; goto 100 end end; 23{ R}:begin outst(A); read(x); присв(А,х) end; 24{ w}:begin outst (x); writeln(x) end; end end p:=p+1; goto 100; 999; 6 Интерпретация SOL Как известно, интерпретатор анализирует исходную программу каждый раз, когда она должна быть выполнена. При этом, как правило, процесс интерпретации разделяют на два этапа- На первом этапе интерпретатор просматривает всю программу (как, примерно, компилятор) и представляет ее в форме ,удобной для последующей обработки. На втором этапе выполняется это внутреннее представлением В соответствии с этим интерпретатор для SOL должен состоять из двух блоков: блока анализа и блока интерпретации. 6.1 Внутреннее представление программы и ее объектов Построение блока анализа ориентировано на списковые языки. Каждый SOL-оператор во внутреннем представлении имеет 26
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »