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

UptoLike

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