ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Российской Федерации
Государственное образовательное учреждение
высшего профессионального образования
Санкт-Петербургский государственный университет
аэрокосмического приборостроения
МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ КУРСОВОГО ПРОЕКТА
ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ ВЫСОКОГО УРОВНЯ
Санкт-Петербург
2005
Составители: Т.М.Максимова
Рецензент: В.П.Попов
В методические указания включены постановка задачи на курсовое проектирование и рекомендации по методике разработки программы .
Предназначены для студентов всех форм обучения, проходящих подготовку по специальностям 220400 и 351500.
Подготовлены кафедрой компьютерной математики и программирования и рекомендованы к изданию редакционно-издательским советом Санкт-Петербургского государственного университета аэрокосмического приборостроения.
© ГОУ ВПО СПбГУАП, 2005
_______________________________________________________________________________
Подписано к печати Формат 60х84 1/16. Бумага офсетная. Печать офсетная
Усл. печ. л Усл. кр.-отт. 0,00. Уч.- изд. л Тираж экз. Заказ №
____________________________________________________________________
Редакционно-издательский отдел
Отдел электронных публикаций и библиографии библиотеки
Отдел оперативной полиграфии
СПбГУАП
190000, Санкт-Петербург, ул. Б. Морская, 67
1. Спроектировать программную модель работы компилятора по построению таблиц идентификаторов для исходной программы, написанной на языке высокого уровня.
Предусмотреть возможность функционирования вышеуказанных моделей для двух вариантов организации областей видимости символических имен: статического и динамического; полагая, что характерными структурами исходной программы для них являются соответственно:
- блочная структура, позволяющая зафиксировать области видимости для подпрограмм на этапе компиляции с учетом вложенности блоков;
- структура, при которой подпрограммы не могут быть вложенными, и, следовательно, позволяющая определить области видимости только на этапе выполнения программы.
Требования к организации входных данных
Входные данные следует представить в виде файла с текстом исходной программы, состоящей из нескольких подпрограмм. Подпрограмма может иметь параметры, раздел описаний переменных и подпрограмм, а также – раздел операторов. Поскольку целью имитации выполнения программы является только построение областей видимости для подпрограмм, множество типов операторов допустимо ограничить вызовами подпрограмм, исключив рекурсивные вызовы. Для описания исходной программы следует воспользоваться синтаксисом языка Pascal или C, в зависимости от варианта задания на курсовую работу. Допускается введение дополнительных ограничений к правилам образования имен переменных и подпрограмм.
Требования к организации выходных данных
Выходные данные следует представить двумя файлами:
- файл результатов моделирования работы компилятора,
- файл результатов моделирования выполнения программы.
Результаты моделирования работы компилятора представить множеством списков идентификаторов для множества подпрограмм.
Предусмотреть диагностику исходной программы на наличие в ней ошибок двух типов:
- двойное описание имени,
- использование неописанного имени.
Ошибки первого типа могут быть обнаружены на этапе компиляции для программы со статически определяемой областью видимости, и на обоих этапах моделирования (компиляции и выполнения) – для программы с динамически определяемой областью видимости. Ошибки второго типа обнаруживаются на этапе моделирования выполнения программы.
Результаты моделирования выполнения программы для статически определяемой области видимости в зависимости от варианта задания представить:
- последовательностью состояний стека времени выполнения с указателями статической цепи(SCP);
- последовательностью состояний дисплея.
Для динамически определяемой области видимости результаты моделирования выполнения программы в зависимости от варианта задания представить:
- последовательностью состояний стека времени выполнения;
- последовательностью состояний центральной таблицы имен.
Кроме того, каждая порция информации (состояние стека, дисплея или таблицы) о выполнении подпрограммы должны сопровождаться списком псевдонимов для выполняющейся подпрограммы.
Входные данные
1) Программа блочной структуры
program p;
var a,b,c:integer;
procedure d(var e:integer; f:integer);
var a,g:integer;
procedure h;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.