Фаза - генерация - код - Большая Энциклопедия Нефти и Газа, статья, страница 1
Третий закон Вселенной. Существует два типа грязи: темная, которая пристает к светлым объектам и светлая, которая пристает к темным объектам. Законы Мерфи (еще...)

Фаза - генерация - код

Cтраница 1


Фаза генерации кода компилятором заключается в переводе этих ( супер) - комбинаторов в чисто кодовые последовательности, как это было предложено в гл.  [1]

Чем сложнее фаза генерации кода, тем проще становятся оставшиеся фазы компилятора. Так, например, если фаза генерации кода производит коды на языке ассемблера, в дальнейшем потребуется одно - или двупросмотровый ассемблер для получения объектного модуля на машинном языке. Если информация в таблице символов компилятора целиком и без изменений передается ассемблеру, может использоваться однопросмот-ровый ассемблер; если передаются только операторы DS и DC, необходим двупросмотровый ассемблер.  [2]

Нужно ли изменить фазу генерации кода и ее макроопределения. Опишите все изменения, которые необходимо сделать в программах данной фазы.  [3]

Опишите тот выход, который передается фазе генерации кода.  [4]

После этого данная фаза компиляции должна поместить информацию, необходимую для фазы генерации кода, в таблицу идентификаторов, в таблицу литералов и в матрицу.  [5]

Машинно-зависимая оптимизация тесно связана с типом генерируемых команд и поэтому включается в фазу генерации кодов. Машинно-независимая оптимизация представляет собой отдельную фазу оптимизации компилятора. В этом разделе мы обсудим фазу оптимизации и четыре наиболее общих типа машинно-независимой оптимизации, упомянутых в разд.  [6]

Определение значений меток и разрешение всех ссылок, Мы разделяем ( 1) фазу генерации кодов и ( 2) фазу сборки, так как они логически различны и часто реализуются отдельно. Функционально фаза сборки похожа на второй просмотр ассемблера.  [7]

Матрица - фаза распределения памяти заводит элементы в матрице, чтобы убедиться, что фаза генерации кодов отведет память, необходимую для идентификаторов, временной памяти н литералов. Она также проверяет, что величинам по соответствующим адресам памяти присвоено начальное значение.  [8]

В данном разделе мы рассмотрели некоторые из проблем, которые могут встретиться при реализации фазы генерации кода. Для простоты был описан механизм в форме макропроцессора Системы 360 ( см. гл. Во многих отношениях генерация кода, возможно, является наиболее сложной фазой компилятора.  [9]

Таблица литералов - фаза распределения памяти назначает всем литералам адреса и заводит в матрице элемент, указывающий, что фаза генерации кода должна выделить эту память.  [10]

Задача, которую должна решать фаза сборки, во многом зависит от того, что было сделано при выполнении фазы генерации кода. В другом случае, если фаза генерации кода оставляет команды и метки в символическом виде, фаза сборки должна: 1) разрешить все символьные ссылки; 2) вычислить адреса; 3) сгенерировать двоичные машинные команды; 4) выделить память и преобразовать литералы.  [11]

Матрица - каждый элемент содержит операцию, определенную в базе данных кодового образца. Фаза генерации кода проверяет каждый элемент матрицы и определяет коды, которые необходимо генерировать. Операция в каждом элементе матрицы может рассматриваться как макровызов с операндами, используемыми в качестве фактических параметров.  [12]

Генерирует код и адреса. Фаза генерации кода должна либо выделить память и присвоить начальное значение, либо сгенерировать код, который будет выделять память во время выполнения программы. Использование структур данных еще больше усложняет генерацию реальных адресов. Он должен сгенерировать L 1 4 ( 8 9), где 4 ( 8 9) обозначает действительный адрес.  [13]

Фаза распределения памяти для простых скаляров помещает их адрес относительно начала области в поле адреса элемента таблицы идентификаторов. Фаза генерации кода для простого оператора присваивания должна сформировать адрес для В и А.  [14]

Указание о длине помещается во все элементы таблицы идентификаторов. Поле длины используется фазой генерации кода для создания соответствующего кода ( например, А. Таким образом, шаги с 1 по 3, примененные к нашему примеру, в результате дают таблицу идентификаторов, показанную на рис. 8.32. Читатель сам может определить длину и адрес.  [15]



Страницы:      1    2