29361

Генерация объектного кода для тетрадной формы представления программ

Доклад

Информатика, кибернетика и программирование

последовательность команд загруженных в фиксированные ячейки памяти2. последовательность перемещенных машинных команд3. Предположим что сумматор может выполнять 4 арифметические операции а в целом система команд также включает еще 2 команды: загрузки сумматора из памяти и сохранение результатов в память.Систему команд такой машины можно представить следующим образом:При выполнении любой из первых двух команд содержимое источника копируется в приемник а при выполнении оставшихся 4 команд содержимое ячейки памяти не изменяется.

Английский

2013-08-21

99.5 KB

0 чел.

29) Генерация объектного кода для тетрадной формы представления программ.

Существует 3 формы объектного кода
1. последовательность команд, загруженных в фиксированные ячейки памяти
2. последовательность перемещенных машинных команд
3. программа на языке ассемблера
Объектный код в компиляторах (К) может формироваться как в двоичном виде, т.е. в виде кодов (1,2), так и в символьном виде (на языке ассемблера) (3). Пусть объектный код формируется в символьном виде. Чтобы показать процесс генерации кода, можно рассмотреть теоретическую вычислительную машину с одним сумматором и неограниченной памятью. Предположим, что сумматор может выполнять 4 арифметические операции (+,-,*,/), а в целом система команд также включает еще 2 команды: загрузки сумматора из памяти и сохранение результатов в память.
Для упрощения будем считать, что 
объектная программа формируется в символьном виде, а каждая переменная представляется своим именем, а не указателем, на соотв. ячейку памяти.
Систему команд такой машины можно представить следующим образом:

При выполнении любой из первых двух команд содержимое источника копируется в приемник, а при выполнении оставшихся 4 команд, содержимое ячейки памяти не изменяется.
Генерация кода осуществляется для программы, представленной в некоторой внутренней форме, наиболее удобной из которых для генерации кода является 
список тетрад.

Список тетрад является наиболее удобной формой для генерации кода. Это объясняется тем, что тетрады в списке следуют в том порядке, в котором они должны выполняться, поэтому простейший алгоритм генерации кода заключается в поочередной замене каждой тетрады стандартной последовательностью машинных команд. Для рассматриваемых типов команд, такие последовательности для некоторых типов тетрад показаны в таблице.

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

A:= (B+D+A)* (D+B+C)
Для него исходный список тетрад будет иметь следующий вид:

(+,B,D,T1)
(+,T1,A,T2)
(+,D,B,T3)
(+,T3,C,T4)
(*,T2,T4,T5)
(:=,T5, ,A).
После машинно-независимой оптимизации представленный список тетрад будет иметь следующий вид:

(+,B,D,T1) (1)
(+,A,T1,T2) (2)
(+,C,T1,T4) (3)
(*,T2,T4,T5) (4)
(:=,T5, ,A).
(5)

Полученный код является избыточным , т.к. содержит команды, являющиеся дублирующими отдельный действия по записи и чтению данных в памяти. Это объясняется тем, что каждая тетрада реализуется стандартной универсальной последовательностью команд, не учитывающая контекст.


 

А также другие работы, которые могут Вас заинтересовать

49973. Исследование процесса затвердевания сварочной ванны с использованием метода материального моделирования 1.94 MB
  Продемонстрировать механизмы роста кристаллитов используя смеси солей. Сравнить скорости затвердевания чистого расплава соли и расплава смеси солей при одинаковых механизмах роста; 3. Указать следы фронта затвердевания первичной границы роста кристаллитов. Задавая различные скорости сварки через окуляр микроскопа можно непосредственно наблюдать процессы структурообразования сварочной ванны изучая механизмы роста кристаллитов.
49974. Общая структура программ в Pascal 65.5 KB
  F1 обратиться за справкой к встроенной справочной службе Help помощь; F2 сохранить редактируемый текст в файл; F3 открыть текст из файла в окно редактора; F4 пользуется в отладочном режиме: начать или продолжить исполнение программы и остановиться перед исполнением той ее строки на которой стоит курсор; F5 отобразить скрыть окно на вывода; F7 используется в отладочном пошаговом режиме: выполнить следующую строку если в строке есть обращение к процедуре функции войти в эту процедуру и остановиться перед исполнением...
49975. ПРОСТЕЙШИЕ МОДЕЛИ НАДЕЖНОСТИ 212.5 KB
  Вероятность того что прочность элемента будет находиться на интервале s т. это вероятность разрушения. Вероятность неразрушения равна 1Pis для iтого элемента. Аналогично для всей системы ее вероятность не разрушения 1Pcs где Pсs интегральное распределение прочности всей системы состоящей из n последовательно соединенных элементов.
49978. Измерение параметров гармонического напряжения с помощью осциллографа 498 KB
  Измерение параметров гармонического напряжения с помощью осциллографа Цель работы Приобретение навыков измерения параметров гармонического напряжения с помощью осциллографа. Получение сведений о характеристиках и устройстве электронного осциллографа. Устройство принцип действия и основные характеристики электронного осциллографа.
49979. Изучение линейчатых спектров атомов 423.5 KB
  Согласно современной квантовой теории возможные значения энергии системы атомов полностью определяются ее внутренними свойствами: числом и свойствами атомов ядер и электронов в ней и характером взаимодействия между ними. Те значения энергии. которые могут быть реализованы в данной системе принято называть ее уровнями энергии. Совокупность всех возможных значений энергии или уровней энергии носит название энергетического спектра или спектра возможных значений энергии.
49980. Измерение и анализ спектров свечения газоразрядных ламп 184.5 KB
  Просматривая видимый диапазон 400 750 нм измерили длины волн всех спектральных линий лампы №1. Обработка результатов измерений Измеренные длины волн линий занесите в табл. Измерение длин волн спектральных линий. Используя данные о длинах волн спектральных линий атомов некоторых элементов из табл.