1207
правок
KVN (обсуждение | вклад) Нет описания правки |
KVN (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
Упрощенно процесс перевода | Упрощенно процесс ''трансляции —'' перевода программы с одного языка на другой можно представлять себе как последовательное выполнение двух фаз — фазы ''анализа'' и фазы ''синтеза'' или ''кодогенерации,'' если переводится исходный код программы с языка программирования высокого уровня на язык программирования низкого уровня, например, язык ассемблера (assembly language), объектный код (object code) или машинный код (machine code). В результате выполнения первой фазы формируется ''промежуточное представление'' (intermediate representation) исходной программы. | ||
'' | Если выходным языком ''компилятора'' (программы, реализующей процесс трансляции) является язык низкого уровня. то та часть компилятора (''вторичный'' ''компилятор''), которая выполняет вторую фазу процесса трансляции, называется ''генератором кода'' (code generator), . | ||
Таким образом, генератор кода получает на входе промежуточное представление исходной программы и переводит его в объектный код, форма которого целиком определяется объектной машиной. Хотя имеется большая зависимость кодогенерации от объектного языка и операционной системы, такие вопросы как управление памятью, выбор команд, распределение регистров и порядок вычисления присущи почти всем проблемам кодогенерации | Таким образом, генератор кода получает на входе промежуточное представление исходной программы и переводит его в объектный код, форма которого целиком определяется объектной машиной. Хотя имеется большая зависимость кодогенерации от объектного языка и операционной системы, такие вопросы как управление памятью, выбор команд, распределение регистров и порядок вычисления присущи почти всем проблемам кодогенерации. | ||