ВУЗ:
Составители:
X 0 > 23 :F X X 1 + :+ 26 ! X 5 :=
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Для. меток вводится нулевой класс лексем, т.е. используется
обозначение р (0,р).
Составной оператор переводится в полиз по схеме:
begin S1; S2;...;Sn end ——> S1 S2... Sn
Пример -
begin read(a); write(a+l) end ——> aRal+W
Операторы ввода-вывода используют символы R и W,
которые относятся к ограничителям:
read(x) ——> xR write(x) ——> xW
Чтобы в конце ПОЛИЗа была точка, правило Р
переписывается в виде:
P::=program D`;B <ЗП(`.`)>
5.3 Хранение польской записи в памяти
Польская запись представляет собой массив из лексем
(n,k),где n - номер класса лексем, k - номер лексемы внутри
класса.
П
(2,1) (1,1)
Классы : n=0 – метки, n=1 – служебные слова, n=2 - знаки
операций , n=3 – числа, n=4 - идентификаторы (запись значений),
n=5 -имена (запись обозначений).
Польская запись очищена от всех служебных слов, кроме true
и false; от ограничителей остались лишь знаки операций и знаки
`:=`,`.`.
5.4 Интерпретатор ПОЛИ3а
П р о ц е д у р ы:
адр(1) функция выдает адрес ячейки, отведенной для лексемы
l;
сод(А) функция выдает содержимое ячейки с адресом А;
присв(А,х) в ячейку с адресом А заносится значение х;
inst(x) запись в стек;
ontst(x) считывание из стека.
Т е л о и н т е р п р е т а т о р а:
25
X 0 > 23 :F X X 1 + :+ 26 ! X 5 := 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Для. меток вводится нулевой класс лексем, т.е. используется обозначение р (0,р). Составной оператор переводится в полиз по схеме: begin S1; S2;...;Sn end ——> S1 S2... Sn Пример - begin read(a); write(a+l) end ——> aRal+W Операторы ввода-вывода используют символы R и W, которые относятся к ограничителям: read(x) ——> xR write(x) ——> xW Чтобы в конце ПОЛИЗа была точка, правило Р переписывается в виде: P::=program D`;B <ЗП(`.`)> 5.3 Хранение польской записи в памяти Польская запись представляет собой массив из лексем (n,k),где n - номер класса лексем, k - номер лексемы внутри класса. П (1,1) (2,1) Классы : n=0 – метки, n=1 – служебные слова, n=2 - знаки операций , n=3 – числа, n=4 - идентификаторы (запись значений), n=5 -имена (запись обозначений). Польская запись очищена от всех служебных слов, кроме true и false; от ограничителей остались лишь знаки операций и знаки `:=`,`.`. 5.4 Интерпретатор ПОЛИ3а П р о ц е д у р ы: адр(1) функция выдает адрес ячейки, отведенной для лексемы l; сод(А) функция выдает содержимое ячейки с адресом А; присв(А,х) в ячейку с адресом А заносится значение х; inst(x) запись в стек; ontst(x) считывание из стека. Т е л о и н т е р п р е т а т о р а: 25
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »