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

UptoLike

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

20
Рис. 10. R-схема интерпретатора: нетерминальные символы , , , .
Семантические функции к R-схеме интерпретатора:
y0: инициализация стеков и переменных;
y1: занесение в стек $StekRes идентификатора $Tab_Lexems[$Number_Lexem]->Value;
y2: занесение в стек $StekRes константы $Tab_Lexems[$Number_Lexem]->Value;
y3: прочитать целое число с терминала в переменную $Cifra и положить
его в $StekRes ($Cifra→$StekRes);
y4: чтение следующей лексемы ($Number_Lexem++);
y5: занесение в стек $StekMul значение операции типа умножения
($Tab_Lexems[$Number_Lexem]->Value→$StekMul);
y6: в переменную $Bi снять элемент со стека $StekRes ($Bi←$StekRes), в
переменную $Ai снять элемент со стека $StekRes ($Ai←$StekRes), в переменную
$kmul снять элемент со стека $StekMul ($kmul←$StekMul), выполнить операцию
типа умножение $Ai otu($kmul) $Bi и результат занести в стек $StekRes;
y7: занесение в стек $StekSum кода операции типа сложения;
y8: в переменную $ksum снять со стека $StekSum значение лексемы ots
($ksum←$StekSum), если $ksum=1, то снять в переменную $Ai элемент со стека
       Рис. 10. R-схема интерпретатора: нетерминальные символы   ,   ,   ,   .
   Семантические функции к R-схеме интерпретатора:
   y0: инициализация стеков и переменных;
   y1: занесение в стек $StekRes идентификатора $Tab_Lexems[$Number_Lexem]->Value;
   y2: занесение в стек $StekRes константы $Tab_Lexems[$Number_Lexem]->Value;
   y3: прочитать целое число с терминала в переменную $Cifra и положить
его в $StekRes ($Cifra→$StekRes);
   y4: чтение следующей лексемы ($Number_Lexem++);
   y5: занесение в стек $StekMul значение операции типа умножения
($Tab_Lexems[$Number_Lexem]->Value→$StekMul);
   y6: в переменную $Bi снять элемент со стека $StekRes ($Bi←$StekRes), в
переменную $Ai снять элемент со стека $StekRes ($Ai←$StekRes), в переменную
$kmul снять элемент со стека $StekMul ($kmul←$StekMul), выполнить операцию
типа умножение $Ai otu($kmul) $Bi и результат занести в стек $StekRes;
   y7: занесение в стек $StekSum кода операции типа сложения;
   y8: в переменную $ksum снять со стека $StekSum значение лексемы ots
($ksum←$StekSum), если $ksum=1, то снять в переменную $Ai элемент со стека


                                       20