
- •Транслятор
- •Содержание
- •Введение
- •1 Постановка задачи
- •2 Формальная модель задачи
- •3 Структура программы
- •3.1 Лексический анализатор
- •3.2 Синтаксический анализатор
- •Дерево разбора
- •3.3 Семантический анализатор программы
- •3.4 Генерация полиЗа программы
- •Перевод в полиз операторов. Каждый оператор языка программирования может быть представлен как n-местная операция с семантикой, соответствующей семантике оператора.
- •3.5 Интерпретация полиЗа программы
- •4 Структурная организация данных
- •4.1 Спецификация входной информации
- •4.2 Спецификация выходной информации
- •4.3 Спецификация процедур и функций
- •5 Разработка алгоритма решения задачи
- •Список использованных источников
- •Приложение a Текст программы
Федеральное агентство по образованию
ГОУ ВПО
Саратовский государственный технический университет им. Гагарина Ю. А.
Кафедра «Программное обеспечение вычислительной техники и автоматизированных систем»
Пояснительная записка к курсовому проекту по дисциплине
«Теория языков программирования и методы трансляции»
Транслятор
Выполнил:
Студент ПВСз-51
Кондюшова М. В.
Проверил:
доцент кафедры ПВС Сайкин А.И.
Содержание
Введение 3
1 Постановка задачи 4
2 Формальная модель задачи 5
3 Структура программы………………………………………………….....16
3.1 Лексический анализатор 16
3.2 Синтаксический анализатор 18
3.3 Семантический анализатор 20
3.4 Генерация ПОЛИЗа программы 22
3.5 Интерпритация ПОЛИЗа программы 24
4 Структурная организация данных 31
4.1 Спецификация входной информации 31
4.2 Спецификация выходной информации 31
4.3 Спецификация процедур и функций 31
5 Разработка алгоритма решения задачи 32
5.1 Укрупненная схема алгоритма программного средства 32
5.2 Детальная разработка алгоритмов отдельных подзадач 33
6 Установка и эксплуатация программного средства 34
7 Работа с программным средством 35
Заключение 36
Список использованных источников 37
Приложение А – Текст программы 38
Введение
Теория формальных языков, грамматик и автоматов составляет фундамент синтаксических методов. Основы этой теории были заложены Н. Хомским в 40–50-е годы XX столетия в связи с его лингвистическими работами, посвященными изучению естественных языков. Но уже в следующем десятилетии синтаксические методы нашли широкое практическое применение в области разработки и реализации языков программирования.
В настоящее время искусственные языки, использующие для описания предметной области текстовое представление, широко применяются не только в программировании, но и в других областях. С их помощью описывается структура всевозможных документов, трехмерных виртуальных миров, графических интерфейсов пользователя и многих других объектов, используемых в моделях и в реальном мире. Для того чтобы эти текстовые описания были корректно составлены, а затем правильно распознаны и интерпретированы, применяются специальные методы их анализа и преобразования. В основе данных методов лежит теория формальных языков, грамматик и автоматов.
Теория формальных языков, грамматик и автоматов дала новый стимул развитию математической лингвистики и методам искусственного интеллекта, связанных с естественными и искусственными языками. Кроме того, ее элементы успешно применяются, например, при описании структур данных, файлов, изображений, представленных не в текстовом, а двоичном формате. Эти методы полезны при разработке своих трансляторов даже там, где уже имеются соответствующие аналоги.
Несмотря на то, что к настоящему времени разработаны тысячи различных языков и их компиляторов, процесс создания новых приложений в этой области не прекращается. Это связно как с развитием технологии производства вычислительных систем, так и с необходимостью решения все более сложных прикладных задач. Такая разработка может быть обусловлена различными причинами, в частности, функциональными ограничениями, отсутствием локализации, низкой эффективностью существующих компиляторов.
Целью курсовой работы являться:
закрепление теоретических знаний в области теории формальных языков, грамматик, автоматов и методов трансляции;
формирование практических умений и навыков разработки собственного компилятора модельного языка программирования;
закрепление практических навыков самостоятельного решения инженерных задач, развитие творческих способностей студентов и умений пользоваться технической, нормативной и справочной литературой.