ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 18
- 19
- 20
- 21
- 22
- …
- следующая ›
- последняя »
