на первый
заказ
Дипломная работа на тему: Анализ предметной области. Компиляторы. Логическая структура компилятора
Введение
Каждый преподаватель вправе преподносить материал и обучать студентов по любой из дисциплин так, как он считает нужным.Преподаватель желает, чтобы знания по преподаваемым наукам лучше усваивались студентами. Часто материал не усваивается из-за того, что нет его наглядного представления, нет материалов, будь то программных или выполненных в виде плакатов, стендов, способствующих более глубокому пониманию.
Для того чтобы создать демонстрационный вспомогательный материал следует наработать необходимую базу. Что занимает много времени и требует определенных усилий и больших временных затрат. В результате могут быть получены плакаты, методические пособия, программные средства (тестовые, обучающие) и др. Некоторые из них можно применять и в отсутствии преподавателя для самообучения, для контроля знаний и т. п.
Для проверки знаний часто используют тестовые системы, в которых проверка знаний происходит в интерактивном режиме. Некоторые из них лишь выдают какой-то общий результат, другие определяют, где и на каком этапе возникла ошибка, и сообщают об этом пользователям (используется в компиляторах).
Оглавление
- Введение 19- Анализ предметной области
- Компиляторы
- Логическая структура компилятора
- Лексический анализ. Сканер
- Синтаксический и семантический анализ
- Грамматики
- Формирование промежуточного кода
- Метод четверок
- Обоснование создания учебного комплекса
- Обзор существующих разработок
- Обоснование разработки
- Создание учебной разработки
- Краткое описание учебного компилятора
- Описание учебного языка
- Лексический анализатор LEXAN
- Таблица терминальных символов
- Таблица символических имен
- Таблица литералов
- Работа сканера
- Структура листинга
- Структура выходного файла
- Примерное задание для студента
- Описание работы лексического анализатора
- Синтаксический анализатор SinAn
- Таблица переходов
- Правила работы с таблицей переходов
- Правила таблицы переходов для написания программы
- Формируемая таблица переходов. Правила заполнения
- Правила заполнения формируемой таблицы переходов
- Построение деревьев
- Семантический анализ
- Формирование промежуточного кода
- Циклы
- Определение трудоемкости по стадиям разработки
- Методика расчета
- Определение затрат на выполнение проекта по стадиям разработки
- Расчет затрат на выполнение проекта по этапам
- Рекомендации по охране труда при работе с учебным комплексом
- Заключение 97
- Список использованных источников 98
- Приложения
Заключение
Результатом проделанной работы явилось создание учебного комплекса состоящего из двух программ LEXAN и SINAN, соответственно программа лексического и грамматического разбора. При этом была разработана общая схема компилятора с описанием структур и их взаимодействия.При работе над проектом были созданы алгоритмы, позволяющие производить синтаксический разбор с помощью таблиц, что позволяет наглядно понять один из способов формирования деревьев грамматического разбора.
Разработка включает в себя первые два из четырех этапов учебного комплекса по созданию компилятора. Разработанная структура позволяет реализовать последующие этапы, т.к. определены последующие направления и описаны способы взаимодействия между этапами. На следующих этапах должны формироваться промежуточный и ассемблерный коды.
Данный проект позволит разобраться студентам с методами анализа программы и на практике проверить знания, полученные при изучении предмета "Системное программное обеспечение". Также является основой для дальнейшей разработки учебного комплекса.
Был выполнен экономический расчет, в результате которого были подсчитаны общие затраты на выполнение дипломного проекта, они составили 7000 рублей.
Список литературы
1. Бек Л. Введение в системное программирование.: Пер. с англ. - М.: Мир, 1998.2. Грис Д. Конструирование компиляторов для цифровых вычислительных машин. - М.: Мир, 1975.
3. Карпов В.Э. Классическая теория компиляторов. - http://itlab.net.ru/ materials/compiler/compiler.html
4. Конспект лекций по теме "Трансляторы". - http://www.kulichki.net/ kit/library/transl.zip
5. Креншоу Д. Давайте создадим компилятор! - http://kit.kulichki.net/ crenshaw/crenshaw.html
6. Лабораторные работы по курсу Системное ПО. - http://www.fi.ru/~mill/ LabFl-97.htm
7. Основы компиляции. http://structur.h1.ru/compil.htm
8. Романов Е.Л. Основы построения трансляторов. - http://www.kulichki. net/kit/library/nstu_trans.zip.
9. Пратт Т. Языки программирования. Разработка и реализация.: Пер. с англ. - М.: Мир, 1979.
10. Типовые нормы времени на программирование задач для ЭВМ. - М.: Экономика, 1989.
11. Типовые нормы времени на разработку конструкторской документации. - М.: Экономика, 1991.
12. Фаронов В.В. Турбо Паскаль. Книга1. Основы Турбо Паскаля. - М.: Учебно-инженерный центр "МВТУ-ФЕСТО ДИДАКТИК", 1992.
13. Шаньгин В. Ф., Илюшечкин В. М., Тимофеев П. А. Программирование микропроцессорных систем. / Под ред. В. Ф. Шаньгина. - М.: Высш. шк., 1990.
Приложение А
Пример выполнения задания по работе со сканером LEXAN
Дана следующая грамматика языка:
13. <index-exp> ::= id := <exp> ТО <exp>
Используя программу LEXAN произвести следующие действия:
1. Выбрать элементы из таблицы терминальных символов, при желании можно изменить названия ключевых слов (таблица 1);
2. Написать исходный текст на учебном языке с использованием заданной грамматики;
3. Заполнить таблицы: - символьных имен (таблица 2);
- литералов (таблица 3);
- лексического анализа (выходных символов);
4. Проверить правильность заполнения таблиц встроенным анализатором;
5. При наличии ошибок, исправить имеющиеся, и повторно обработать программой LEXAN;
6. Получить листинг полученных результатов.
7. Сохранить результат в файл.
Сначала производится анализ, какие терминальные символы входят в грамматику: "PROGRAM", "VAR", "BEGIN", "END", ".", "INTEGER", ";", ":=", "+", "-", "FOR", "DО", "ТО".
Исходная программа, написанная с использованием терминов исходной грамматики:
Далее выбираются терминальные символы, использованные в программе, заполняется таблица выбранных терминальных символов. Примерное представление таблицы выбранных терминальных символов показано в таблице 19.
Таблица 19
Терминальный символ
Комментарий (обозначение)
Код
или зарегистрироваться
в сервисе
удобным
способом
вы получите ссылку
на скачивание
к нам за прошлый год