Конструирование трансляторов для языков программирования высокого уровня. Ярушкина Н.Г. - 14 стр.

UptoLike

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

- 15 -
4. Стековые методы. Методы анализа произвольных
арифметических выражений
При организации анализа арифметических выражений стековыми
методами обычно используют 2 стека: один стек содержит тройки в
последовательности, подготовленной для последующего вычисления
(вычислительный стек Е), а второй стек необходим для совместного
просмотра и анализа арифметического выражения (анализирующий стек
Т). Каждый из стеков характеризуется своим набором команд:
а). Команды вычислительного стека:
1) KI - команда записи I в стек E, где I - операнд или операция.
2) команда, позволяющая взять из вершины стека операцию и два
операнда, вычислить операцию и записать в вершину стека.
б). Команды анализирующего стека:
1) Запись в Т входного символа и чтение входного символа
2) Генерировать команду К из вершины стека. Записать входной сим-
вол. Читать входной символ.
3) Читать Т. Читать входной символ.
4) Генерировать К вершины стека. Читать Т. Повторить с текущим
входным символом.
Таблица действий простых арифметических выражений
+-------------------------------------------------------------+
¦стек/вх.сим.¦ +-+ ¦ ( ¦ + ¦ - ¦ * ¦ / ¦ ) ¦
+------------+------+------+------+------+------+------+------¦
¦ +-+ ¦конец ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ошибка¦
+------------+------+------+------+------+------+------+------¦
¦ ( ¦ 4 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 3 ¦
+------------+------+------+------+-------------+------+------¦
¦ + ¦ 4 ¦ 1 ¦ 2 ¦ 2 ¦ 1 ¦ 1 ¦ 4 ¦
+------------+------+------+------+------+------+------¦------¦
¦ - ¦ 4 ¦ 1 ¦ 2 ¦ 2 ¦ 1 ¦ 1 ¦ 4 ¦
+------------+------+------¦------+------+------+------¦------¦
¦ * ¦ 4 ¦ 1 ¦ 4 ¦ 4 ¦ 2 ¦ 2 ¦ 4 ¦
+------------+------+------¦------+------+------+------¦------¦
¦ / ¦ 4 ¦ 1 ¦ 4 ¦ 4 ¦ 2 ¦ 2 ¦ 4 ¦
+--------------------------+---------------------------+------+
В ходе анализа заполняются анализирующий и вычислительный
стеки, а также в результате просмотра происходит сдвиг по арифме-