книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
"Нелинейная цифровая фильтрация" ( Курсовая работа, 40 стр. )
"Основы теории управления"* ( Контрольная работа, 13 стр. )
"Программа для разархивации файла, созданного по алгоритму RLE" ( Контрольная работа, 11 стр. )
"Технология "Millipede". Разработка модели форматирования в системе FAT 32." ( Контрольная работа, 10 стр. )
AJAX – интерфейс для системы CATS ( Курсовая работа, 13 стр. )
CMS для компании «КАРЛЭНД Сервис» ( Отчет по практике, 26 стр. )
JST Компилятор Smalltalk JVM ( Курсовая работа, 24 стр. )
Microsoft Excel ( Контрольная работа, 28 стр. )
PaketForm. Система обработки заявок на открытие счетов в ОАО АКБ «Росбанк». ( Отчет по практике, 29 стр. )
program z5 ( Контрольная работа, 11 стр. )
Web-рейтинг “Active Student” ( Курсовая работа, 13 стр. )
АВТОМАТИЗАЦИЯ ПРОЦЕССА ЮНИТ-ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЯ «ПОЧТОВЫЙ КЛИЕНТ»: APPLICATION LAYER ( Курсовая работа, 22 стр. )
АВТОМАТИЗАЦИЯ ПРОЦЕССА ЮНИТ-ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЯ «ПОЧТОВЫЙ КЛИЕНТ»: APPLICATION LAYER 2007-23 ( Курсовая работа, 23 стр. )
Автоматизация процесса создания выходной документации для ОАО “Черногорский Завод Искусственных Кож ( Дипломная работа, 182 стр. )
Автоматизированная система управления ОПтК ( Курсовая работа, 43 стр. )
Автоматизированная система оперативно-диспетчерского управления (АСОДУ) патентно-правового бюро «Эксперт» ( Дипломная работа, 116 стр. )
Автоматизированное рабочее место «СЕССИЯ» ( Курсовая работа, 41 стр. )
Автоматическое обновление метаданных на основе версий DDL ( Курсовая работа, 14 стр. )
Алгоритмизация и программирование процессов обработки данных ( Контрольная работа, 9 стр. )
Алгоритмические языки и программирование ( Курсовая работа, 31 стр. )
Алгоритмические языки высокого уровня. Структура формального алгоритмического языка ( Контрольная работа, 14 стр. )
Алгоритмические языки и теория програмирования ( Курсовая работа, 41 стр. )
Алгоритмический язык Паскаль ( Контрольная работа, 20 стр. )
Алгоритмы работы с некоторыми структурами данных при программировании на Delphi. ( Контрольная работа, 40 стр. )
Анализ потоков управления для языка программирования Pascal ( Курсовая работа, 6 стр. )

Аннотация 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»