Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой проект.doc
Скачиваний:
56
Добавлен:
27.01.2015
Размер:
105.98 Кб
Скачать

Проектирование трансляторов

Время выдачи проекта июнь 20014 г.

Срок выполнение проекта 23 декабря 2014 г.

Защита назначена _______ декабря 2014 г.

ИСХОДНЫЕ ДАННЫЕ К ПРОЕКТУ

  1. Вариант задания, содержащий описание языка программирования.

  2. Данные методические указания.

СОДЕРЖАНИЕ РАСЧЁТНО-ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ

1. Титульный лист.

2. Задание на двух листах.

3. Аннотация.

4. Содержание.

5. Введение.

6. Теоретическая часть.

6.1. Вариант задания.

6.2. Описание заданного языка программирования.

6.3. Формальная грамматика, описывающая язык

программирования.

6.4. Классы лексем.

6.5. Регулярные грамматики, описывающие классы лексем.

6.6. Конечные автоматы, соответствующие выделенным классам

лексем.

6.7. Алгоритм работы лексического анализатора.

6.8. Анализ и приведение формальной грамматики описывающей

язык программирования.

6.9. Проверка приведённой грамматики на принадлежность к

классу LL(1).

6.10. Построение магазинного анализатора.

6.11. Управляющая таблица магазинного анализатора.

7. Техническая часть.

7.1. Техническое задание на программу транслятора.

7.2. Пояснительная записка к программе транслятора.

7.3. Руководство программиста.

7.4. Руководство оператора.

7.5. Методика испытаний.

8. Заключение.

9. Список использованной литературы.

Литература.

Основная:

  1. Компаниец Р.И., Маньков Е.В., Филатов Н.Е. Системное программирование. Основы построения компиляторов. -СПб.: КОРОНА Принт, 2010 г.

  2. Хантер Р. Основные концепции компиляторов. -М.: "Вильяме", 2012 г.

Дополнительная:

  1. Бердж В. Методы рекурсивного программирования. -М.: Машиностроение, 1983 г.

  2. Грис Д. Наука программирования. -М.: Мир, 1984 г.

  3. Бек Л. Введение в системное программирование. - М.: Мир, 1988

ИНТЕРНЕТ РЕСУРСЫ

1. cmmsu.no-ip.info/download/formal.grammars.and.languages.2009.pdf

2. ict.edu.ru/ft/004979/Posob3.pdf

3. www.mccme.ru/free-books/pentus.hdf

руководитель проекта _____________________________А.И. Сайкин

Проект принял к исполнению______________________________

1. Содержание работы.

Каждый студент выполняет свой вариант курсового проекта. Этапы проектирования для всех одинаковы. Вначале необходимо составить описание языка программирования высокого уровня. Этот язык задаётся вариантом задания и представляет собой усечённую версию языков С++ или Паскаль. Описание производится с помощью форм Наура-Бекуса. Затем язык описывается с помощью контекстно-свободной грамматики.

На следующем этапе составляется технические задания для разработки программ лексического и синтаксического анализаторов и программу генерации промежуточного кода - четвёрок. Техническое задание согласовывается с преподавателем и определяет всю дальнейшую работу. Целью, которой, является разработка программы транслятора, входом для которой являлась бы некоторая программа на исходном языке, а выходом был текст программы в промежуточном коде. Вся документация составляется в полном соответствии с ЕСПД. Программа транслятора состоит из совместно работающих программ анализаторов и генератора, как с выдачей промежуточных документов, так и без выдачи промежуточных документов. Но в любом случае пользователю должны выдавать сообщения об ошибках лексических и синтаксических.

Результатом курсового проектирования является работающая программа транслятора и пояснительная записка содержащая:

1. Титульный лист.

2. Вариант задания.

3. Описание языка.

4. Примеры программ на заданном языке.

5. Список использованных источников.

6. Приложения (выполняются по ЕСПД).

6.1. Техническое задание.

6.2. Пояснительная записка.

6.3. Методика испытаний.

6.4. Руководство оператора.

6.5. Руководство программиста.

2. Требования к усечённой версии языка

Входной алфавит выбирается в соответствии с вариантом задания. Данные всегда только числовые - целые и с плавающей точкой. Язык всегда содержит операторы ввода числовых значений, вывода чисел и комментариев. Оператор присвоения, оператор конца программы. Прочие операторы являются дополнительными и отдельно оговариваются в варианте задания. Структура операторов задаётся вариантом задания или по образцу языка С++, или языка Паскаль.

Операторы присвоения могут содержать элементарные функции, которые определяются в варианте задания.

В языке используются знаки арифметических действий, разделители, служебные символы и прочие по усмотрению проектировщика.