ВУЗ:
Составители:
El:: = Т {[ ∪ ] <instl> T <checkop;ЗПОР>}
T:: = F {[ ∩ ] <instl> F<checkop;ЗПОР>}
F:: = I <checkid;ЗПЛ> | N <instl(int);ЗПЛ> | [false,true] <
inst(bool)>|
¬F <checknot;ЗП(`¬`)>| (E)
Напомним, что ранее в эти правила были внесены элементы
синтаксического и семантического анализа.
5.2 Перевод операторов
Для перевода в полиз оператора присваивания используется
правило:
S::I<checkid;ЗПЛ5>:=:E<eqtype;ЗП(`:=`)>
При этом для обозначения имени переменной, стоящей в
левой части оператора, вводится 5-ый класс лексем. Так что
лексема, например, х = (4,8) переводится в х = ( 5,8).
Пример -
х ;=e------> xe:=
В стек записывается не значение х, а имя х; после вычисления
оператора в стеке ничего не остается.
Пример - -а:= а аа:= ; a=false.
:
=
true
a
false
a
Для перевода в полиз циклических и условных операторов
используются аналогичные правила. Кроме того, в этом случае вво-
дятся обозначения р! - переход на клетку с номером р; p!F - переход
по false на клетку с номером р:
if B then S1 else S2; ---> BP2!FS1P3!S2;
while B do S; ——> BP1FSP0!P P2 P3
| |
P0
P1
Пример -
if x>0 then x:=x+l else x:=5
24
El:: = Т {[ ∪ ]T } T:: = F {[ ∩ ] F } F:: = I | N | [false,true] < inst(bool)>| ¬F | (E) Напомним, что ранее в эти правила были внесены элементы синтаксического и семантического анализа. 5.2 Перевод операторов Для перевода в полиз оператора присваивания используется правило: S::I :=:E При этом для обозначения имени переменной, стоящей в левой части оператора, вводится 5-ый класс лексем. Так что лексема, например, х = (4,8) переводится в х = ( 5,8). Пример - х ;=e------> xe:= В стек записывается не значение х, а имя х; после вычисления оператора в стеке ничего не остается. Пример - -а:= а аа:= ; a=false. a false a true := Для перевода в полиз циклических и условных операторов используются аналогичные правила. Кроме того, в этом случае вво- дятся обозначения р! - переход на клетку с номером р; p!F - переход по false на клетку с номером р: if B then S1 else S2; ---> BP2!FS1P3!S2; while B do S; ——> BP1FSP0!P P2 P3 | | P0 P1 Пример - if x>0 then x:=x+l else x:=5 24
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »