1. Содержание работы.


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

Для написания программы на входном языке необходимо создать язык, в который бы входили: заголовок программы, оператор описания типа переменной, оператор ввода переменной, оператор присвоения и оператор вывода результата. Для оператора присвоения необходимо предусмотреть знаки арифметических операций, скобки и элементарные функции, которые выдаются вместе с вариантом задания. А также, разделители и служебные символы. В связи с этим разрабатывается контекстно-свободная грамматика, которая в последствии позволит провести грамматический разбор программы на исходном языке. Грамматическому разбору должен предшествовать лексический анализ, который обычно не вызывает затруднений (см. лабораторные работы №1 и №2).

Оператор присвоения имеет общий вид для всех вариантов


Y=Y(x).


Результатом выполнения программы должен быть текст в объектном псевдокоде. Для чего необходимо оговорить его содержание. В работе рекомендуется использовать так называемые четвёрки, имеющие вид


КОП, А1, А2, А3,

где: КОП - код операции,

А1- адрес первого операнда,

А2 - адрес второго операнда,

А3 - адрес результата.

Хотя возможны и другие варианты, например, по двухадресной и одноадресной схемам.

Используемые данные могут быть как целыми, так и с плавающей точкой.


2. Задание по работе.


1. Получить вариант задания у преподавателя.

2. Разработать язык формульного транслятора.

3. На основе разработанной регулярной грамматики разработать

программу лексического анализатора.

4. На основе разработанной контекстно-свободной грамматики

разработать программу грамматического разбора исходного

текста на входном языке.

5. Во всех случаях предусмотреть сообщения пользователю о

лексических и синтаксических ошибках.

6. Разработать и описать объектный псевдокод.

7. Составить и утвердить техническое задание на программу генерации.

8. Разработать программу генерации объектного псевдокода.

9. Составить отчёт по работе с описанием всех пунктов задания,

представить работающую программу.


3. Варианты заданий.

Вариант задания состоит из трёх цифр. Каждая цифра означает соответствующую строку таблицах 1, 2 и 3. В соответствии с этим, оператор присвоения может содержать указанные математические функции из указанных строк таблиц.

Таблица 1.

Функция
1 acos
2 asin
3 atan
4 sin
5 cos
6 sinh
7 cosh

Таблица 2.

Функции
1 exp
2 abs
3 mod
4 sqrt
5 log
6 ln
7 log10

Таблица 3.

Функции
1 tan
2 tanh
3 cotan
4 cotanh
5 trunk
6 round
7 nearbyint

Подробные сведения о перечисленных функциях можно найти в справочнике программиста по С/C++.


4. Методические указания.

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

Лексический анализ, грамматический разбор и генерация псевдокода могут быть совмещены в одной программе, но методически их лучше реализовать по отдельности: вначале лексический анализ, затем грамматический разбор и после этого, когда все ошибки будут устранены - генерация машинного кода.

Но в любом случае написание программы является творческим процессом и всё, что говорилось ранее, носит только рекомендательный характер.


5. Контрольные вопросы.

1. Каков приоритет в выполнении арифметических операций в

выражении?

2. Что такое лексема?

3. Каково назначение лексического анализа?

4. Каково назначение грамматического разбора?

5. Как определяется контекстно-свободная грамматика?

6. Что такое «чевёрки»?

7. Зачем используют псевдокод?

8. В чём особенность объектного кода?

9. Как из объектного кода получить исполняемый код?


Литература.

1. Бек Л. Введение в системное программирование. -М.: Мир, 1988.-448 с.

2. Компаниец Р.И., Маньков Е.В., Филатов Н.Е. Системное программи-

рование. Основы построения трансляторов.-СПб.: КОРОНА принт,

2000 .-256 с.

3. Шильд Г. Справочник программиста по С/С++.-М.: Издательский дом

«Вильямс», 2000.-448 с.



Министерство образования Российской Федерации Саратовский государственный технический университет

Построение детерминированного синтаксического

анализатора.


методические указания к выполнению лабораторной

работы по курсу «Теория вычислительных процессов

структур» для студентов специальности ПВС


Составил доцент кафедры ПВС

Сайкин А.И.


Саратов, 2001 г.



Информация о работе «Лабораторные работы по Теории вычислительных процессов и структур»
Раздел: Информатика, программирование
Количество знаков с пробелами: 42177
Количество таблиц: 10
Количество изображений: 1

Похожие работы

Скачать
79120
0
14

... процессом init (процесс, идентификатор которого pid = 1, становится их новым родителем). Порядок выполнения работы 1. Изучить теоретическую часть лабораторной работы. 2. Организовать функционирование процессов следующей структуры: 2.1. Отец формирует нумерованные сообщения вида: N pid time (N –текущий номер сообщения, pid – pid процесса, time – время записи в формате мм.сс (минуты. ...

Скачать
78723
14
38

... работы со справочной системой работа практикума приостанавливается. 3.   Организационно-экономическое обоснование проекта В ходе дипломного проекта был разработан компьютерный лабораторный практикум по курсу «Теория оптимизации и численные методы». В данном разделе рассмотрена экономическая сторона проекта. Рассмотрены следующие вопросы: 1)         сетевая модель 2)         расчёт ...

Скачать
114601
5
73

... концентрических окружностей с уменьшающимся радиусом по мере затухания колебаний скорости и момента. Аналогичная картина наблюдается при ступенчатом набросе нагрузки. 5. РАЗРАБОТКА ВИРТУАЛЬНОЙ ЛАБОРАТОРНОЙ РАБОТЫ НА БАЗЕ ВИРТУАЛЬНОЙ АСИНХРОННОЙ МАШИНЫ   Иную возможность анализа АД представляет специализированный раздел по электротехнике Toolbox Power System Block. В его библиотеке имеются блоки ...

Скачать
54439
17
0

... гистерезисная диаграмма поляризации сегнетоэлектрика. Подобрать масштаб по вертикальной оси осциллографа так, чтобы изображение занимало весь экран. Внимание: в процессе выполнения последующих пунктов лабораторной работы не допускается изменять положение масштабного переключателя осциллографа. Измерить и записать в табл. 6.2 координаты вершины гистерезисного цикла: xm, ym (координаты вершины ...

0 комментариев


Наверх