ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »
