Основы трансляции. Рыбанов А.А. - 18 стр.

UptoLike

Составители: 

18
($Tab_Lexems[$r]->Value=$Number_Lexem+1), занести в $Stek_if значение
$Number_Lexem ($Number_Lexem→$Stek_if);
y5: снять вершину стека $Stek_if в переменную $r ($r←$Stek_if), присвоить
значение $Number_Lexem+1 лексеме c номером $r [THEN→ENDIF+1,
ELSE→ENDIF+1] ($Tab_Lexems[$r]->Value=$Number_Lexem+1) занести в
$Stek_if значение $Number_Lexem ($Number_Lexem→$Stek_if);
y6: завершить работу;
y7: $Number_Lexem++, прочитать очередную лексему с номером
$Number_Lexem;
2.3. Интерпретатор
После лексической обработки и расстановки ссылок последовательность
лексем, массивы идентификаторов и констант поступают на обработку
интерпретатору. Задача интерпретатора - распознать конструкции языка и
выполнить действия, предписанные входной программой. Учитывая, что
синтаксический разбор будет производиться над массивом лексем, уточним
грамматику языка МИЛАН, которая будет использована для синтаксического
анализа последовательности лексем. Множество терминалов в уточненной
грамматике - это множество лексем.
Уточненная грамматика языка МИЛАН:
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
Здесь и - число идентификаторов и констант; нетерминалы обозначают
конструкции языка: - <программа>; -<последовательность операторов>;
- <оператор>; - <условие>; - <выражение>; - <терм>; - <множитель>;
- <константа>; O - <знак отношения>; M - <операция типа умножения>;
N - <операция типа сложения>; I - <идентификатор>.
Построим синтаксические диаграммы интерпретатора языка МИЛАН (рис.
9-10). Из диаграммы видно, что грамматика языка МИЛАН является -
грамматикой.
($Tab_Lexems[$r]->Value=$Number_Lexem+1), занести в $Stek_if значение
$Number_Lexem ($Number_Lexem→$Stek_if);
   y5: снять вершину стека $Stek_if в переменную $r ($r←$Stek_if), присвоить
значение $Number_Lexem+1 лексеме c номером $r [THEN→ENDIF+1,
ELSE→ENDIF+1] ($Tab_Lexems[$r]->Value=$Number_Lexem+1) занести в
$Stek_if значение $Number_Lexem ($Number_Lexem→$Stek_if);
   y6: завершить работу;
   y7: $Number_Lexem++, прочитать очередную лексему с номером
$Number_Lexem;

   2.3. Интерпретатор
   После лексической обработки и расстановки ссылок последовательность
лексем, массивы идентификаторов и констант поступают на обработку
интерпретатору. Задача интерпретатора - распознать конструкции языка и
выполнить действия, предписанные входной программой. Учитывая, что
синтаксический разбор будет производиться над массивом лексем, уточним
грамматику языка МИЛАН, которая будет использована для синтаксического
анализа последовательности лексем. Множество терминалов в уточненной
грамматике - это множество лексем.
   Уточненная грамматика языка МИЛАН:
   1)
   2)
   3)

   4)
   5)
   6)
   7)
   8)
   9)
   10)
   11)
   12)
   Здесь и - число идентификаторов и констант; нетерминалы обозначают
конструкции языка:    - <программа>; -<последовательность операторов>;
  - <оператор>; - <условие>; - <выражение>; - <терм>; - <множитель>;
   - <константа>; O - <знак отношения>; M - <операция типа умножения>;
N - <операция типа сложения>; I - <идентификатор>.
   Построим синтаксические диаграммы интерпретатора языка МИЛАН (рис.
9-10). Из диаграммы видно, что грамматика языка МИЛАН является       -
грамматикой.


                                    18