close

Вход

Забыли?

вход по аккаунту

?

Руководство программиста (2)

код для вставкиСкачать
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Поволжский государственный технический университет
Кафедра ИВС
"Компилятор"
РУКОВОДСТВО ПРОГРАММИСТА
к курсовой работе по дисциплине
"Системное программное обеспечение"
Выполнил: ст. гр. ВМ-41
Андреев В.Г.
Проверил: Морохин Д.В.
Йошкар-Ола
2013
АННОТАЦИЯ
В данном руководстве программиста содержится информация о программной реализации компилятора, разработанного в данной курсовой работе. Подробно описаны условия применения программы. Подробно описано назначение модулей (за исключением стандартных библиотек), подключаемых к программе.
СОДЕРЖАНИЕ
Аннотация2
Содержание3
Информация о программе 4
Подключаемые модули 5
Состав основной программы 7
Заключение9
ИНФОРМАЦИЯ О ПРОГРАММЕ
Функции выполняемые программой
Для выполнения поставленного назначения, программа должна выполнять лексический, синтаксический, семантический анализ, оптимизацию, и генерацию кода на языке низкого уровня ассемблер.
Условия необходимые для выполнения программы
-Наличие свободной оперативной памяти 32-64мб (не считая используемую ОС)
-Оперативная система Windows(98/2000/XP/7/8)
-Процессор (фактически любой оптимальный для ОС, программа не является требовательной к ресурсам процессора)
-10мб свободного места на HDD
-Устройство вывода (монитор)
-Устройство ввода (клавиатура, мышь)
Файлы для работы
Andreev.exe - исполняемый файл программы.
Curs1.txt - пример кода программы на языке Pascal, для иллюстрации работы компилятора.
Curs2.txt - пример кода программы на языке Pascal, который более наглядно изображает оптимизацию промежуточного кода. Программа разработана в системе программирования Borland Delphi.
ПОДКЛЮЧАЕМЫЕ МОДУЛИ
* LexElem.pas
Модуль, описывающий структуру элементов таблицы лексем.
* TblElem.pas
Модуль, описывающий структуру данных элементов таблицы идентификаторов.
* LexType.pas
Модуль, содержащий описание всех типов лексем.
* SyntSymb.pas
Модуль, обеспечивающий выполнение функций синтаксического разбора с помощью алгоритма "сдвиг-свертка" на основе матрицы операторного предшествования.
* LexElem.pas
* SyntRule.pas
Модуль, содержащий описание матрицы предшествования и правил грамматики.
* Triads.pas
Модуль, обеспечивающий работу с триадами и списком триад.
* TblElem.pas * LexElem.pas * TrdType.pas
Модуль для описания допустимых типов триад.
* FncTree.pas
Модуль, обеспечивающий работу с комбинированной таблицей идентификаторов, построенной на основе хэш-функции и бинарного дерева.
* TblElem.pas
* LexType.pas
* LexAuto.pas
Модуль, обеспечивающий построение таблицы лексем по исходному тексту программы.
* TblElem.pas * LexType.pas * LexElem.pas
* TrdOpt.pas
Модуль реализующий алгоритм оптимизации за счёт исключения лишних операций.
* TblElem.pas * LexElem.pas * TrdType.pas * Triads.pas
* TrdType.pas
* TrdMake.pas
Модуль, обеспечивающий создание списка триад на основе структуры синтаксического разбора.
* LexElem.pas * Triads.pas * SyntSymb.pas
* TrdAsm.pas
Модуль распределения регистров и построения ассемблерного кода по списку триад.
* TrdType.pas * Triads.pas
Маркированный список 1 уровня - модули, подключаемые в основную программу, представленную в листинге. Маркированный список 2 уровня - модули, необходимые для работы очередного модуля из списка 1 уровня, и подключаемые к нему.
СОСТАВ ОСНОВНОЙ ПРОГРАММЫ
Весь текст программы вставлять в данный раздел смысла нет, для этого существует листинг. Ниже будут рассмотрены процедуры и функции входящие в состав программы.
* procedure StartInfo (const sErrF: string)
Процедура записи стартовых данных в файл ошибок. Параметр: имя файла ошибок. Вызывается процедурой ProcessParams.
* procedure ProcessParams (var flOptC, flOptSame, flOptAsm: Boolean)
Обработка командной строки. Параметры: flOptC, flOptSame, flOptAsm - флаги. Вызывается процедурой TCursovForm.FormCreate.
* procedure InitLexGrid
Процедура инициализации таблицы для отображения списка лексем. Вызывается процедурой TCursovForm.BtnLoadClick.
* procedure MakeTree (nodeTree: TTreeNode; symbSynt: TSymbol)
Отображение синтаксического дерева. Параметры: nodeTree - ссылка на корневой элемент отображаемой части дерева на экране, symbSynt - ссылка на синтаксический символ, связанный с корневым элементом части дерева. Вызывается процедурами TCursovForm.BtnLoadClick и MakeTree.
* procedure ErrInfo (const sErrF, sErr: string; iPos, iLen: integer)
Информация об ошибке. Параметры: sErrF - имя файла ошибок, sErr - текст ошибки, iPos - позиция ошибки на экране, iLen - количество символов, которые необходимо подсветить. Вызывается процедурами StartInfo, ProcessParams и функцией CompRun.
* function CompRun (const sInF, sOutF, sErrF: string; var symbRes: TSymbol; flTrd, flDelC, flDelSame, flOptC, flOptSame, flOptAsm: Boolean): TErrType
Запуск компилятора. Параметры: sInf - имя входного файла, sOutF - имя результирующего файла, sErrF - имя файла ошибок, symbRes - корень дерева разбора, flTrd - флаг записи триад в списки, flDelC - флаг удаления триад типа "", flDelSame - флаг удаления триад типа "", flOptC - флаг оптимизации методом свертки, flOptSmae - флаг оптимизации методом исключения лишних операций, flOptAsm - флаг оптимизации ассемблерного кода. Функция возвращает типы возможных ошибок компилятора: файловая, лексическая, синтаксическая, семантическая (триады) или ошибок нет. Вызывается процедурами TCursovForm.FormCreate и TCursovForm.BtnLoadClick.
* procedure TCursovForm.FormCreate (Sender: TObject)
В начале выполнения инициализируем список лексем, таблицу идентификаторов, синтаксический стек и список триад. Вызывается при открытии окна программы.
* procedure TCursovForm.FormClose (Sender: TObject; var Action: TCloseAction)
В конце выполнения очищаем список лексем, таблицу идентификаторов, синтаксический стек и список триад. Вызывается при закрытии окна программы.
* procedure TCursovForm.EditFileChange (Sender: TObject)
Чтение из файла, если он не пуст. Вызывается при вводе текста в строку выбора файла.
* procedure TCursovForm.BtnFileClick (Sender: TObject)
Выбор имени файла с помощью стандартного диалога. Вызывается при нажатии на кнопку "Выбрать файл".
* procedure TCursovForm.BtnLoadClick (Sender: TObject)
Чтение и анализ файла. Вызывается при нажатии на кнопку "Загрузить файл".
* procedure TCursovForm.BtnExitClick (Sender: TObject)
Завершение работы с программой. Вызывается при нажатии на кнопку "Завершить работу с программой".
ЗАКЛЮЧЕНИЕ
Данное руководство программиста включает в себя необходимую информацию по подключаемым модулям, поясняет их назначение. Это является актуальным, так как современное программирование состоит в основном из использования готовых функций, описанных в подключаемых библиотеках. Также, здесь содержится информация о процедурах и функциях основной программы. Вся остальная необходимая информация содержится в других разделах документации.
Документ
Категория
Рефераты
Просмотров
739
Размер файла
97 Кб
Теги
руководство, программиста
1/--страниц
Пожаловаться на содержимое документа