книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
Курсовая работа по дисциплине "Теория информации и кодирования" Код Хемминга ( Контрольная работа, 8 стр. )
Курсовая работа по дисциплине "Микропроцессорные системы" программа перевода десятичных чисел стандартной клавиатуры в BIN и HEX код по команде с матричной клавиатуры ( Реферат, 21 стр. )
Курсовая работа По дисциплине Моделирование "Счетчик-делитель на 7" Вариант№23 ( Реферат, 18 стр. )
Курсовая работа по дисциплине "Микропроцессорные системы" ( Контрольная работа, 13 стр. )
Курсовая работа по дисциплине "Теория информации и кодирования" Код Хемминга 2009-8 ( Контрольная работа, 8 стр. )
Курсовая работа по дисциплине "Микропроцессорные системы" ( Контрольная работа, 9 стр. )
Курсовая работа по дисциплине "Моделирование" на тему "Регистр хранения числа в прямом и обратном кодах" (Вариант 41) ( Курсовая работа, 12 стр. )
КУРСОВАЯ РАБОТА по дисциплине "Моделирование" на тему "Регистр сдвига" (Вариант 30) ( Реферат, 18 стр. )
Курсовая работа по предмету "Операционные системы" "Программирование в операционной среде UNIX" 2006-8 ( Контрольная работа, 8 стр. )
Курсовая работа по предмету "Операционные системы" "Программирование в операционной среде UNIX" ( Контрольная работа, 7 стр. )
Курсовой проект по VBA-2010 ( Курсовая работа, 32 стр. )
Лабораторная работа по дисциплине "Технология программирования" ( Контрольная работа, 9 стр. )
ЛАБОРАТОРНАЯ РАБОТА ПО ДИСЦИПЛИНЕ: "ТЕОРИЯ КОДИРОВАНИЯ" "Код Хэмминга в матричном виде" * ( Контрольная работа, 12 стр. )
ЛАБОРАТОРНАЯ РАБОТА ПО ДИСЦИПЛИНЕ: "ТЕОРИЯ КОДИРОВАНИЯ" "Код Хэмминга в матричном виде" ( Контрольная работа, 8 стр. )
Лабораторная работа по предмету "Конструкторско-технологическое обеспечение производства". ( Контрольная работа, 12 стр. )
Линейная регрессия ( Контрольная работа, 27 стр. )
Линейная регрессия (численные методы) ( Контрольная работа, 29 стр. )
Линейное програмирование ( Курсовая работа, 33 стр. )
Линейное программирование: решение задач графическим методом ( Курсовая работа, 33 стр. )
Линейное программирование. Общая постановка задачи ( Контрольная работа, 18 стр. )
Логическая игра на основе распознавания образов ( Курсовая работа, 17 стр. )
Логическая игра с искусственным интеллектом «Sequences» ( Курсовая работа, 13 стр. )
МАТЕМАТИЧЕСКОЕ ОБОСНОВАНИЕ И АНАЛИЗ ( Контрольная работа, 10 стр. )
Место абонентского программного обеспечения в комплексе программных средств сети Internet85 ( Реферат, 17 стр. )
Метод Зойтендейка ( Контрольная работа, 18 стр. )

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