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

UptoLike

procedure eqtype;
begin outst (t2); outst(tl)
if tl<>t2 then ERR(egl)
end;
procedure eqbool;
begin ontst(t); if t<>bool then ER(eg2) end;
а также ранее рассмотренной процедуры checkid;после анализа
oператора стек пуст.
Правило S теперь имеет вид:
S::= I<checkid>:=E<eqtype>| if E <eqbool>
then S else S|while E <egbool> do S
5 Перевод программы в ПОЛИЗ
Польская инверсная запись (ПОЛИЗ)- постфиксная запись
используется для внутреннего представления программы на MPL,
готового к интерпретации.
5.1 Перевод выражений
При считывании файла лексем параллельно с синтаксическим
и аналитическим анализом проводится запись в массив П -
(ПОЛИЗ). При этом, в соответствии с синтаксическим разбором
двуместной операции, первый операнд записывается в ПОЛИЗ, знак
операции временно считывается в стек, а после записи в ПОЛИЗ
второго операнда туда же заносится знак операции.
Пример. х+у——>ху+
П е р е м е н н ы е:
Р-номер первого свободного элемента массива П;
l - очередная лексема;
LEXO - предыдущая лексема.
П р о ц е д у р ы
ЗП(1) П(р):=1; р:=р+1 - запись лексемы в П;
ЗПЛ ЗП(LEXO) - запись предыдущей лексемы в П;
ЗПЛ5 запись LEXO с заменой 4-ого класса на 5-ый
(см.перевод операторов присваивания);
ЗПОР ЗР(ОР) - запись в П того знака операции, который
считывает процедура checkop.
Правила описания языка, дополненное переводом в ПОЛИЗ
принимает вид:
Е:: = Е1 | El [ ] <instl> El
<checkop;ЗПОР>
23
procedure eqtype;
begin outst (t2); outst(tl)
       if tl<>t2 then ERR(egl)
       end;
procedure eqbool;
begin ontst(t); if t<>bool then ER(eg2) end;
 а также ранее рассмотренной процедуры checkid;после анализа
oператора стек пуст.
      Правило S теперь имеет вид:
       S::= I:=E| if E 
       then S else S|while E  do S

               5 Перевод программы в ПОЛИЗ

      Польская инверсная запись (ПОЛИЗ)- постфиксная запись
используется для внутреннего представления программы на MPL,
готового к интерпретации.

5.1 Перевод выражений

      При считывании файла лексем параллельно с синтаксическим
и аналитическим анализом проводится запись в массив П -
(ПОЛИЗ). При этом, в соответствии с синтаксическим разбором
двуместной операции, первый операнд записывается в ПОЛИЗ, знак
операции временно считывается в стек, а после записи в ПОЛИЗ
второго операнда туда же заносится знак операции.
      Пример. х+у——>ху+
      П е р е м е н н ы е:
      Р-номер первого свободного элемента массива П;
      l - очередная лексема;
      LEXO - предыдущая лексема.
       Процедуры
       ЗП(1) П(р):=1; р:=р+1 - запись лексемы в П;
       ЗПЛ ЗП(LEXO) - запись предыдущей лексемы в П;
       ЗПЛ5 запись       LEXO с заменой 4-ого класса на 5-ый
(см.перевод операторов присваивания);
       ЗПОР ЗР(ОР) - запись в П того знака операции, который
      считывает процедура checkop.
       Правила описания языка, дополненное переводом в ПОЛИЗ
принимает вид:
     Е:: = Е1 | El [ ≤ ]  El
     


                                                            23