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