- •Введение.
- •1 Задание на проектирование
- •2 Цели и требования
- •3 Внешний проект
- •3.1 Входные и выходные данные
- •3.2 Определение синтаксиса языка
- •3.3 Общая структура проекта
- •3.4 Структура выходного файла
- •3.5 Организация листинга
- •4 Проект архитектуры
- •4.1 Структуры данных
- •4.2 Алгоритмы основных функций
- •4.3 Схема вызовов процедур и функций
- •4.4 Организация процедуры компиляции
- •4.5 Спецификация основных процедур и функций
- •4.6 Обработка ошибок
- •5 Реализация
- •5.1 Тестирование
- •5.2 Документация для пользователя
2 Цели и требования
Необходимо разработать программу, удовлетворяющую заданию. Критичным является размер программы. Дать спецификацию к основным процедурам верхнего уровня, обозначить порядок вызова процедур. Произвести тестирование процедуры нижнего уровня и 2 внешних теста.
3 Внешний проект
3.1 Входные и выходные данные
Пользователь запускает программу с одним параметром – имя исполняемого файла на языке Паскаль. Ход компиляции (генерация кода) выводится на экран. Если встречается ошибка, на экран выводится ее номер, текстовое описание, и работа компилятора прерывается. Код программы на языке Ассемблера выводится в файл, носящий то же имя, что и заданное в параметре программы и с расширением “.asm”
3.2 Определение синтаксиса языка
Подмножество языка Паскаль, транслируемое программой, описывают нижеследующие диаграммы Вирта:
Идентификатор:
Буква
Буква
Цифра
_
Программа:
Заголовок Описание Описание тело
переменных функций программы
Заголовок:
program идентификатор ;
Описание переменных:
var идентификатор : integer ;
;
Описание функций:
function идентификатор формальные : integer ;
параметры
описание составной
переменных оператор
Формальные параметры:
( var идентификатор : integer )
,
;
Тело программы:
begin оператор end .
Оператор:
оператор
присваивания
составной
оператор
пустой
оператор
функция ;
exit ;
Вызов функции:
идентификатор фактические
параметры
Фактические параметры:
( идентификатор )
константа
,
Оператор присваивания:
идентификатор : = значение ;
Значение:
идентификатор
константа
выражение
функция
Выражение:
( значение математический значение )
оператор
значение математический значение
оператор
Математический оператор:
+
-
*
mod
div
Составной оператор:
begin оператор end ;
Пустой оператор:
;