
- •Автоматы магазинного типа
- •Алфавит
- •Атрибутивные грамматики
- •Блок сканирования
- •Бэкуса–Наура форма (бнф)
- •Восходящий синтаксический анализ
- •Генератор кода машинных команд
- •Грамматика
- •Граф распознавания.
- •Двухпроходной компилятор
- •Детерминированный конечный автомат
- •Детерминированный метод разбора
- •Диагностика об ошибках при трансляции
- •Интерпретатор
- •Компилятор с однопроходной структурой
- •Конвертор
- •Конечный автомат
- •Регулярные выражения
- •Семантика языка
- •Синтаксис языка
- •Синтаксическая диаграмма
- •Синтаксический анализатор
- •Синтаксический граф
- •Состав компилятора
- •Терминалы
- •Транслятор
- •Трехпроходный транслятор
- •Фаза оптимизации
- •Четверка
Трехпроходный транслятор
Блок сканирования считывает исходную программу и представляет ее в
форме файла лексем. Синтаксический анализатор читает этот файл и выдает9
новое представление программы, например, в постфиксной форме. Наконец,
этот файл считывается генератором кода, который создает объектный код
программы.
Компилятор такого вида называется трехпроходным (рис.1.1), так как
программа считывается трижды (исходный текст программы, файл лексем и
файл в постфиксной форме).
Фаза оптимизации
Блок оптимизации легко встраивается в трехпроходный компилятор, где
размещается, обычно, между синтаксическим анализатором и генератором
кода. На этой фазе постфиксный файл используется в качестве входных
данных и создается новый файл, содержащий постфиксную запись
эквивалентной программы с улучшенными характеристиками.
Четверка
Четверка – это объект, состоящий из четырех элементов: операции,
двух операндов и результата. Если в результате операции вычисляется
значение некоторой переменной, то такую четверку нетрудно построить.