Методические указания к лабораторным работам по курсу "Теория вычислительных процессов и структур". Домашова Д.В - 23 стр.

UptoLike

р:=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