Формальные языки, грамматики и основы построения трансляторов. Кревский И.Г - 113 стр.

UptoLike

113
ЛАБОРАТОРНАЯ РАБОТА 4.
РАЗРАБОТКА ГЕНЕРАТОРА КОДА
1. Порядок выполнения работы.
1.1. Ознакомиться с разделом 18 настоящего пособия.
1.2. Ознакомиться с теоретической частью данной лабораторной
работы и структурой виртуальной машины, для которой будет производиться
генерация мнемокода.
1.3. Для контрольных примеров на реализуемом языке вручную
составить соответствующие им программы на мнемокоде гипотетического
процессора, рассмотренного в данной работе.
1.4. Запрограммировать и отладить программу,
производящую
генерацию мнемокода гипотетического процессора. Выполнить тестирование
на контрольных примерах. При этом пример пропускается через программы
лексического и синтаксического анализа, а файл с постфиксной записью
является входным для программы генерации кода. При необходимости
доработать программы лексического и синтаксического анализа.
1.5. Оформить отчет.
2. Теоретическая часть
Последней фазой компиляции является генерация кода.
Результатом
выполнения этой фазы обычно является программа в выполняемых кодах той
ЭВМ, на которой она должна выполняться. Однако в ряде случаев в качестве
выходного языка транслятора используют ассемблер. В данной работе мы
будем генерировать программу на языке ассемблера. Чтобы облегчить
написание генератора кода и освободить его от посторонних соображений,
связанных с
конкретными особенностями какой-либо ЭВМ, будем
использовать гипотетический процессор (виртуальную машину). Этот
процессор не существует на самом деле (в аппаратном виде). При выборе его
архитектуры требовалась максимальная простота и, в то же время,
возможность легко выполнять на нем программы на языках, реализуемых в
                                                                       113
                  ЛАБОРАТОРНАЯ РАБОТА №4.
                РАЗРАБОТКА ГЕНЕРАТОРА КОДА
                    1. Порядок выполнения работы.
     1.1. Ознакомиться с разделом 18 настоящего пособия.
     1.2. Ознакомиться с теоретической частью данной лабораторной
работы и структурой виртуальной машины, для которой будет производиться
генерация мнемокода.
     1.3. Для контрольных примеров на реализуемом языке вручную
составить соответствующие им программы на мнемокоде гипотетического
процессора, рассмотренного в данной работе.
     1.4.   Запрограммировать    и   отладить   программу,   производящую
генерацию мнемокода гипотетического процессора. Выполнить тестирование
на контрольных примерах. При этом пример пропускается через программы
лексического и синтаксического анализа, а файл с постфиксной записью
является входным для программы генерации кода. При необходимости
доработать программы лексического и синтаксического анализа.
     1.5. Оформить отчет.


                         2. Теоретическая часть
     Последней фазой компиляции является генерация кода. Результатом
выполнения этой фазы обычно является программа в выполняемых кодах той
ЭВМ, на которой она должна выполняться. Однако в ряде случаев в качестве
выходного языка транслятора используют ассемблер. В данной работе мы
будем генерировать программу на языке ассемблера. Чтобы облегчить
написание генератора кода и освободить его от посторонних соображений,
связанных   с   конкретными     особенностями   какой-либо   ЭВМ,   будем
использовать гипотетический процессор (виртуальную машину). Этот
процессор не существует на самом деле (в аппаратном виде). При выборе его
архитектуры требовалась максимальная простота и, в то же время,
возможность легко выполнять на нем программы на языках, реализуемых в