Генерация внутреннего представления программ
На этапе семантического анализа также может решаться задача перевода программы на промежуточный язык. Промежуточная форма записи программы упрощает переход от машинно-независимых этапов трансляции к машинно-зависимым. Она обеспечивает удобство как генерации команд объектной программы, так и интерпретации исходной программы.
Результатом работы синтаксического анализатора должно быть некоторое внутреннее представление исходной цепочки лексем, которое отражает ее синтаксическую структуру. Программа в таком виде в дальнейшем может либо транслироваться в объектный код, либо интерпретироваться.
Основные свойства языка внутреннего представления программ:
1. он позволяет фиксировать синтаксическую структуру исходной программы;
2. текст на нем можно автоматически генерировать во время синтаксического анализа;
3. его конструкции должны относительно просто транслироваться в объектный код либо достаточно эффективно интерпретироваться.
Некоторые общепринятые способы внутреннего представления программ:
1. постфиксная запись
2. префиксная запись
3. многоадресный код с явно именуемыми результатами
4. многоадресный код с неявно именуемыми результатами
5. связные списочные структуры, представляющие синтаксическое дерево.
В основе каждого из этих способов лежит некоторый метод представления синтаксического дерева.
Замечание: чаще всего синтаксическим деревом называют дерево вывода исходной цепочки, в котором удалены вершины, соответствующие цепным правилам вида A → B, где A, B Î N.