logo search
Мейрбекова,Хайрушева-Мат-08[1]

Проектирование программы управления кодом

Многие задачи являются общими для "внешнего слоя" компилятора и модулей программы сопровождения кода. Они получают в качестве входных данных исходный код, разбивают код на лексемы и затем выводят эти лексемы в новом формате. Выходные данные компилятора - это машинный или р-код. Вывод программы сопровождения программы зависит от конкретной задачи, выполняемой тем или иным модулем. В некотором отношении программы управления кодом напоминают упрощенные версии компиляторов. Однако им недостает сложности, присущий модулям генерации кода в компиляторах, и вообще к ним не предъявляется требований по производительности, обычно подразумеваемых для компиляторов. Наиболее элементарный уровень любого языка программирования представлен лексемами. Лексемы являются наименьшими распознаваемыми единицами программы; они образуют строительные блоки, из которых создаются осмысленные операторы. Компиляторы обычно не работают с чем-либо меньшим лексемы. Примерами лексем являются комментарии, константы, идентификаторы, числа, знаки пунктуации и строковые литералы. Задача чтения кода и разбиения его на эти элементы возложена на сканер, который затем возвращает их синтаксическому анализатору. В процессе разбиения кода сканер также идентифицирует тип возвращаемых лексем.