Дизайн компилятора - Архитектура
Компилятор можно разделить на две фазы в зависимости от способа компиляции.
Этап анализа
Известный как внешний интерфейс компилятора, фаза анализа компилятора считывает исходную программу, делит ее на основные части и затем проверяет на лексические, грамматические и синтаксические ошибки. На этапе анализа создается промежуточное представление исходной программы и символа таблица, которая должна быть введена в фазу синтеза в качестве входных данных.

Фаза синтеза
Известный как серверная часть компилятора, фаза синтеза генерирует целевую программу с помощью промежуточного представления исходного кода и таблицы символов.
Компилятор может иметь много фаз и проходов.
Pass : Pass относится к обходу компилятора через всю программу.
Фаза . Фаза компилятора - это различимая стадия, которая принимает входные данные с предыдущего этапа, обрабатывает и выдает выходные данные, которые можно использовать в качестве входных данных для следующего этапа. Проход может иметь более одной фазы.