
- •Курсовая работа
- •Содержание
- •Введение
- •1 Постановка задачи
- •2 Формальная модель задачи
- •Цепочка, которая не содержит ни одного символа, называется пустой цепочкой и обозначается .
- •Цепочка , для которой существует выводS*, называется сентенциальной формой или сентенцией в грамматике .
- •Расширение допускает единственное -правило вида s, но в этом случае начальный символ грамматики s не должен встречаться в правых частях правил.
- •2.1 Расширенные Формы Бэкуса – Наура
- •Операции языка:
- •Правила, определяющие идентификатор, букву и цифру:
- •Правило, определяющее оператор программы (пятая цифра варианта).
- •2.2 Формальные грамматики
- •2.3 Диаграммы Вирта
- •3 Спецификация основных процедур и функций
- •3.1 Лексический анализатор
- •3.2 Синтаксический анализатор
- •3.3 Семантический анализатор
- •3.4 Генерации внутреннего представления программы
- •Перевод в полиз операторов. Каждый оператор языка программирования может быть представлен как n-местная операция с семантикой, соответствующей семантике оператора.
- •Составной оператор {s1; s2;...; Sn } в полиЗе записывается как s1 s2... Sn.
- •3.5 Интерпретатор программы
- •4 Структурная организация данных
- •4.1 Спецификация входной информации
- •4.2 Спецификация выходной информации
- •5 Разработка алгоритма решения задачи
- •6 Установка и эксплуатация программного средства
- •7 Работа с программным средством
- •Заключение
- •Список использованных источников
- •Приложение а
- •Приложение б Примеры программ на модельном языке
- •Приложение в Цепочка вывода и дерево разбора
- •Приложение г Примеры таблиц идентификаторов и двуместных операций
- •Приложение д полиз и интерпретация программы
- •Здесь используются следующие обозначения:
- •Приложение е Контрольный пример
- •Приложение ж Список ошибок, выводимых программой
- •Приложение з Текст программы
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
«оренбургский государственный университет»
Кафедра программного обеспечения вычислительной техники
и автоматизированных систем
Курсовая работа
По теории языков программирования и методов трансляции
Разработка компилятора модельного языка
Пояснительная записка
ГОУ ОГУ 230105.60.11.06 O
Руководитель работы
“____”_____________2011г.
Исполнитель
студент гр. 08ПОВТ(у)
___________ А.В. Кузнецов
« ___ »____________ 2011
Оренбург 2011
Содержание
Введение 3
1 Постановка задачи 4
2 Формальная модель задачи 5
2.1 Расширенные Формы Бэкуса – Наура………..........................................10
2.2 Формальные грамматики 11
2.3 Диаграммы Вирта…………………………………………………...........12
3 Спецификация основных процедур и функций………………………......19
3.1 Лексический анализатор 19
3.2 Синтаксический анализатор 24
3.3 Семантический анализатор 28
3.4 Генерации внутреннего представления программы 30
3.5 Интерпретатор программы……………………………………………....33
4 Структурная организация данных 34
4.1 Спецификация входной информации 34
4.2 Спецификация выходной информации 34
5 Разработка алгоритма решения задачи 35
5.1 Укрупненная схема алгоритма программного средства…………….....35
5.2 Детальная схема алгоритма программного средства…………………..36
6 Установка и эксплуатация программного средства 37
7 Работа с программным средством 38
Заключение 40
Список использованных источников 41
Приложение А – Таблицы служебных слов и ограничителей 42
Приложение Б – Примеры программ на модельном языке 43
Приложение В – Цепочка вывода и дерево разбора…………………….....45
Приложение Г – Примеры таблиц идентификаторов и двуместных операций……………………………………………………………………..............47
Приложение Д – ПОЛИЗ и интерпретация программы……………............48
Приложение Е – Контрольный пример…………………………...................53
Приложение Ж –Список ошибок, выводимых программой 54
Приложение З –Текст программы 55
Введение
Теория формальных языков, грамматик и автоматов составляет фундамент синтаксических методов. Основы этой теории были заложены Н. Хомским в 40–50-е годы XX столетия в связи с его лингвистическими работами, посвященными изучению естественных языков. Но уже в следующем десятилетии синтаксические методы нашли широкое практическое применение в области разработки и реализации языков программирования.
В настоящее время искусственные языки, использующие для описания предметной области текстовое представление, широко применяются не только в программировании, но и в других областях. С их помощью описывается структура всевозможных документов, трехмерных виртуальных миров, графических интерфейсов пользователя и многих других объектов, используемых в моделях и в реальном мире. Для того чтобы эти текстовые описания были корректно составлены, а затем правильно распознаны и интерпретированы, применяются специальные методы их анализа и преобразования. В основе данных методов лежит теория формальных языков, грамматик и автоматов.
Теория формальных языков, грамматик и автоматов дала новый стимул развитию математической лингвистики и методам искусственного интеллекта, связанных с естественными и искусственными языками. Кроме того, ее элементы успешно применяются, например, при описании структур данных, файлов, изображений, представленных не в текстовом, а двоичном формате. Эти методы полезны при разработке своих трансляторов даже там, где уже имеются соответствующие аналоги.
Несмотря на то, что к настоящему времени разработаны тысячи различных языков и их компиляторов, процесс создания новых приложений в этой области не прекращается. Это связно как с развитием технологии производства вычислительных систем, так и с необходимостью решения все более сложных прикладных задач. Такая разработка может быть обусловлена различными причинами, в частности, функциональными ограничениями, отсутствием локализации, низкой эффективностью существующих компиляторов.
Целью курсовой работы являться:
закрепление теоретических знаний в области теории формальных языков, грамматик, автоматов и методов трансляции;
формирование практических умений и навыков разработки собственного компилятора модельного языка программирования;
закрепление практических навыков самостоятельного решения инженерных задач, развитие творческих способностей студентов и умений пользоваться технической, нормативной и справочной литературой.