29362

Генерация объектного кода по семантическому дереву

Доклад

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

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

Английский

2013-08-21

52.5 KB

3 чел.

30) Генерация объектного кода по семантическому дереву.

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

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

Основная идея метода заключается в следующем: 
В процессе 
генерации кода, каждой вершине xi семантического дерева сопоставляется цепочка кода α(xi). При этом эта кодовая цепочка формируется путем объединения кодов цепочек, приписанных потомкам вершины xi. Xi1 – левый потомок, xi2 – правый потомок.
Процесс 
генерации кода осуществляется от листьев дерева к его корню, таким образом, что корню будет приписана итоговая цепочка кода. При таком подходе, процесс генерации кода может быть объединен с процессом восходящего грамматического разбора. Т.е. по мере распознавания отдельных конструкций программы, вызывается не только семантика программы, но и программы генерации кода для этих конструкций.


 

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

16985. Створення таблиць та обробка табличних даних засобами Word 222.5 KB
  Практична робота № 11 Тема: Створення таблиць та обробка табличних даних засобами Word Мета: засвоїти засоби створення редагування та форматування двовимірних таблиць а також організацію обробки та сортування табличних даних у програмі Word. Обладнання: персональний ...
16986. Введення таблиць. Автозаповнення формулами. Сортування даних 676.5 KB
  Практична робота №14 Тема: Введення таблиць. Автозаповнення формулами. Сортування даних. Мета: Навчитися використовувати функцію авто заповнення формулами та сортувати дані у таблицях. Обладнання: ПЕОМ. Табличний процесор MS Excel. Правила ТБ Індивідуальне з
16987. Побудова діаграм 308 KB
  Практична робота №15 Тема: Побудова діаграм. Мета: Навчитися будувати діаграми змішаного типу та кругові діаграми. Обладнання: ПЕОМ. Табличний процесор MS Excel. Хід виконання Правила ТБ Індивідуальне завдання 1. За даними табл. 3 побудувати діаграму зміша...
16988. Фільтрація даних. Критерії фільтрації 1.03 MB
  Практична робота №16 Тема: Фільтрація даних. Критерії фільтрації. Мета: Навчитися використовувати фільтрацію даних та навчитися використовувати Автофильтр та Расширенный фильтр. Обладнання: ПЕОМ. Табличний процесор MS Excel. Хід виконання Правила ТБ Інд
16990. Рішення задач матричної і векторної алгебри в Maple 356.5 KB
  Практична робота №30. Тема: Рішення задач матричної і векторної алгебри в Maple. Мета: Навчитися обчислювати визначників вирішувати системи лінійних рівнянь методом Крамера і матричним способом а також знаходити значення матричного многочлена використовуючи можлив
16991. Диференціальне і інтегральне числення функцій одного і декількох змінних в Maple 430.5 KB
  Практична робота №31. Тема: Диференціальне і інтегральне числення функцій одного і декількох змінних в Maple. Мета: Навчитися обчислювати межі часткову суму послідовностей похідні функцій і інтеграли в середовищі Maple. Обладнання: ПК зі встановленим математичним па
16992. Команди MS-DOS: cls, date, time, copy, del, dir, find, mem, mkdir, label, rd 72.5 KB
  Практична робота №1 Тема: Команди MSDOS: cls date time copy del dir find mem mkdir label rd. Мета: навчитися використовувати основні команди MSDOS при роботі з ОС. Устаткування: ПК. Операційна система MSDOS та Windows. Правила ТБ. Методичні рекомендації. Індивідуальне завда
16993. Профілі обладнання.Створення командних файлів 78.5 KB
  речка Ю.Г. Варіант 4 ВПЗ 2ПМС07 Практична робота №3 Тема: Профілі обладнання.Створення командних файлів. Мета: Навчитися створювати профілі обладнання та тривіальні команд