Фаза
Каждая фаза может находиться в одном из двух состояний:
1) «включена»;
2) «выключена».
Совокупность включенных фаз составляет текущую конфигурацию компилятора. Начальная установка текущей конфигурации выполняется в результате анализа параметров запуска компилятора. Соответствие параметров и включаемых (выключаемых) фаз задается на этапе генерации компилятора таблицами, доступными только модулю начального пуска. Для установки текущей конфигурации управляющий модуль предоставляет следующие процедуры работы со справочником фаз:
1) ВКЛЮЧИТЬ ФАЗЫ ((список имен фаз>);
2) ВЫКЛЮЧИТЬ ФАЗЫ ((список имен фаз>). По отношению к справочнику фаз процесс компиляции представляет собой последовательный просмотр справочника фаз, в ходе которого очередная включенная фаза компилятора загружается и ей передается управление. Выключенные фазы при этом пропускаются. Повторно одна и та же фаза в течение одного запуска компилятора обычно не загружается.
Текущая конфигурация компилятора может динамически за висеть от обрабатываемой информации, что позволяет минимизировать количество обращений к внешней памяти при загрузке фаз компилятора.
Изменение функциональных возможностей компилятора осуществляется за счет изменения справочника фаз и функциональных модулей. С другой стороны, распределение заданного набора функциональных модулей на единицы загрузки полностью определяется справочником фаз.
Для передачи управления от одной фазы к другой в управляющем модуле имеются процедуры:
1) ПРОДОЛЖИТЬ РАБОТУ; управление передается следующей по справочнику фазе;
2) ПЕРЕДАТЬ УПРАВЛЕНИЕ ФАЗЕ (<имя фазы>); запускается указанная фаза.
Метки: режимы фазы, фаза