книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
Искусство программирования ( Реферат, 17 стр. )
ИСПОЛЬЗОВАНИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ( Курсовая работа, 33 стр. )
Исследование термостабильности математической модели белка-порина методом молекулярной динамики ( Отчет по практике, 14 стр. )
Исследование цифровых устройств, реализуемых на СБИС гибкой логики ( Контрольная работа, 9 стр. )
КВАДРАТИЧНАЯ АППРОКСИМАЦИЯ ФУНКЦИИ ЛАГРАНЖА ( Курсовая работа, 32 стр. )
Классификация программных средств бухгалтерского учета ( Контрольная работа, 25 стр. )
Компилятор высокоуровневого языка программирования в виртуальную машину Parrot ( Курсовая работа, 11 стр. )
Компоненты Delphi ( Реферат, 19 стр. )
Компьютерная Графика. Принципы и методы работы в графической программе Macromedia Flash ( Дипломная работа, 66 стр. )
Компьютерная модель робота Phoenix ( Дипломная работа, 79 стр. )
КОНВЕРТОР ФОРМАТОВ ХРАНЕНИЯ ПРОСТРАНСТВЕННЫХ ДАННЫХ. SHAPE-FILE -WKT/WKB; SHAPE-FILE - SVG/GML ( Курсовая работа, 13 стр. )
КОНСТРУИРОВАНИЕ ПРОГРАММ И ЯЗЫКИ ПРОГРАММИРОВАНИЯ ( Курсовая работа, 33 стр. )
КОНСТРУИРОВАНИЕ ПРОГРАММ И ЯЗЫКИ ПРОГРАММИРОВАНИЯ ( Контрольная работа, 153 стр. )
Контрольная работа по дисциплине "Информатика" Задача №2: "Расчет заработной платы работников предприятия"11 ( Реферат, 21 стр. )
Контрольная. Описание программы ( Контрольная работа, 10 стр. )
Контрольная. Программирование ( Контрольная работа, 21 стр. )
Контрольная. Программные средства ( Контрольная работа, 7 стр. )
Контрольная. Программные средства офиса. ( Контрольная работа, 8 стр. )
Контрольная. Составление программ. ( Контрольная работа, 8 стр. )
КУРСОВАЯ РАБОТА ( по дисциплине "Моделирование") "Двоично-десятичный счётчик со сдвиговым регистром" ( Контрольная работа, 12 стр. )
КУРСОВАЯ РАБОТА ( по дисциплине "Моделирование") "Двоично-десятичный счётчик со сдвиговым регистром" 2007-14 ( Контрольная работа, 14 стр. )
КУРСОВАЯ РАБОТА по дисциплине "Микропроцессорные системы" Pin-code ( Реферат, 16 стр. )
КУРСОВАЯ РАБОТА по дисциплине "Моделирование" на тему "Встроенный блок логических наблюдений BILBO" (Задание 2) ( Контрольная работа, 14 стр. )
Курсовая работа по дисциплине "Моделирование" на тему "Регистр хранения числа в прямом и обратном кодах" (Вариант 41) ( Контрольная работа, 12 стр. )
КУРСОВАЯ РАБОТА по дисциплине "Моделирование" на тему "Цифровой таймер" (Вариант 32) ( Контрольная работа, 11 стр. )

Аннотация 3

Теоретическое введение 3

Формальные грамматики 3

Формальное определение грамматики. Форма Бэкуса-Наура 3

Принцип рекурсии в правилах грамматики 4

Задача разбора 5

Виды рекурсий и разбора 6

Классификация языков и грамматик 6

Классификация грамматик по Хомскому 6

Тип 0: грамматики с фразовой структурой 6

Тип 1: контекстно-зависимые (КЗ) и неукорачивающие грамматики 6

Тип 2: контекстно-свободные (КС) грамматики 7

Тип 3: регулярные грамматики 7

Соотношения между типами грамматик 7

Трансляторы 8

Формальное определение транслятора 8

Этапы трансляции. Общая схема работы транслятора 8

Интерпретаторы 10

Lex и Yacc 11

Обзор генераторов кода 11

Совместное использование Lex и Yacc. 11

Lex 13

Theory 13

Practice. 15

Реализация lex в Unix 18

YACC- Yet Another Compiler Compiler 19

Структура YACC-программы 20

Семантические действия 21

Лексический анализ 22

Реализация Yacc в Unix 24

YACC(1) 24

Постановка задачи 26

Транслятор 26

Грамматика синтаксического анализатора 26

Исходная грамматика 26

Эквивалентная грамматика без левой рекурсии 26

Лексический анализатор 27

Синтаксический анализатор 27

Взаимодействие анализаторов 27

Оптимизатор 27

Алгоритм оптимизации 27

Пример оптимизации 28

Интерпретатор 30

Заключение 30

Приложения 31

Analyser.h 31

Analyser.cpp 35

error.h (структуры исключений и перечисления ошибок) 48

transl.cpp (транслятор) 49

interpret.cpp (интерпретатор) 50

Список литературы 51

Аннотация

Цель данной курсовой работы:

- изучение принципов построения трансляторов

- написание на языке C++ класса, реализующего следующие действия над математическими выражениями:

- лексический анализ

- синтаксический анализ

- вычисление значения

- написание транслятора с языка математических выражений на язык деревьев вывода

- написание интерпретатора языка деревьев вывода

Теоретическое введение

Теория построения трансляторов используется во многих областях, связанных с программным обеспечением. Важность этой темы можно проиллюстрировать на примере языка высокого уровня C++: для разработки программы на C++ требуется гораздо меньше времени, чем на языках более низкого уровня.

" А. Ахо, Р. Сети, Д. Ульман: "Компиляторы. Принципы, технологии, инструменты"

" А. Ю. Молчанов: "Системное программное обеспечение"

" A COMPACT GUIDE TO LEX & YACC by Tom Niemann

Примечаний нет.

2000-2024 © Copyright «DipMaster-Shop.ru»