Дипломная работа

от 20 дней
от 9999 рублей

Заказать

Курсовая работа

от 10 дней
от 1999 рублей

Заказать

Реферат

от 3 дней
от 699 рублей

Заказать

Контрольная работа

от 3 дней
от 99 рублей
за задачу

Заказать

Диссертация

Сроки и стоимость индивидуальные

Заказать

Главная - Программирование - Создание компилятора

Создание компилятора Программирование. Курсовая

  • Тема: Создание компилятора
  • Автор: Руслан Тапленкин
  • Тип работы: Курсовая
  • Предмет: Программирование
  • Страниц: 115
  • Год сдачи: 2011
  • ВУЗ, город: БГТУ Военмех
  • Цена(руб.): 1500 рублей

Заказать персональную работу

Выдержка

1. ВВЕДЕНИЕ Транслятор – это программа, которая переводит входную программу на исходном (входном) языке в эквивалентную ей выходную программу на результирующем (выходном) языке. Компилятор – это транслятор, который осуществляет перевод исходной программы в эквивалентную ей объектную программу на языке машинных команд или на языке ассемблера. Таким образом, компилятор является частным случаем транслятора. Процесс компиляции можно разделить на два основных этапа: анализ и синтез. На этапе анализа выполняется распознавание текста исходной программы, создание и заполнение таблиц идентификаторов и т.д. Результатом его работы служит некоторое внутреннее представление программы, понятное компилятору. На этапе синтеза на основании внутреннего представления программы и информации, содержащейся в таблице идентификаторов, порождается текст результирующей программы. Результатом этого этапа является объектный код. Кроме того, в составе компилятора присутствует часть, ответственная за анализ и исправление ошибок. Этапы анализа и синтеза, в свою очередь, состоят из более мелких этапов, называемых фазами компиляции. Так фазами анализа являются: лексический анализ, синтаксический анализ, семантический анализ. Этапами синтеза являются: оптимизация, генерация кода, оптимизация полученного кода. Лексический анализ – это фаза, в которой формируются символы (tokens) входного языка. Лексема (token) – лексическая единица языка. Это структурная единица языка, которая состоит из элементарных символов языка и не содержит в своем составе других лексем. Задачей фазы лексического анализа или лексического анализатора является переход от последовательности знаков к символам языка (лексем), с которыми в дальнейшем будут работать синтаксическая и семантическая фазы. Наряду с преобразованием последовательности знаков в символы, лексический анализатор также обрабатывает пробелы и удаляет комментарии и любые другие символы, не имеющие смысловой нагрузки для последующих этапов анализа. Важно отметить, что лексический анализатор всего лишь формирует символы – их последовательность не имеет для него никакого значения. Синтаксический анализ – это основная часть компиляции на этапе анализа. Синтаксический анализатор получает на вход результат работы лексического анализатора и разбирает его в соответствии с некоторой грамматикой. Основная задача синтаксического анализа – определить, принадлежит ли исходная цепочка символов (лексем) входному языку, т.е. является правильным (с точки зрения синтаксиса) предложением входного языка. Результатом работы синтаксического анализатора является некоторое промежуточное представление программы, обычно в виде дерева синтаксического разбора. Семантический анализ – обычно заключается в проверке правильности типов данных, используемых в программе. Кроме того, на этом этапе компилятор должен также проверить, соблюдается ли определенные контекстные условия входного языка. В современных языка программирования одним из примеров контекстных условий может служить обязательность описания переменных: для каждого использующего вхождения идентификатора должно существовать единственное определяющее вхождение. Другой пример контекстного условия: число и атрибуты фактических параметров вызова процедуры должны быть согласованы с определением этой процедуры. Такие контекстные условия не всегда могут быть проверены во время синтаксического анализа и потому обычно выделяются в отдельную фазу. Оптимизация заключается в преобразовании промежуточного представления программы с целью повышения эффективности результирующего объектного кода. Генерация кода – фаза, непосредственно связана с порождением команд, составляющих предложением выходного языка и в целом тест результирующей программы. Это основная фаза на этапе синтеза результирующей программы. Синтаксически управляемая трансляция подразумевает, что основным управляющим элементом компилятора является синтаксический анализатор. Лексический анализатор служит неким «поставщиком» потока лексем для синтаксического анализатора. Семантические процедуры, а также процедуры генерации кода применяются к построенному синтаксическим анализатором дереву разбора и под его управлением.

Содержание

СОДЕРЖАНИЕ 1 ВВЕДЕНИЕ 3 2. ТЕХНИЧЕСКОЕ ЗАДАНИЕ 5 3. ОПИСАНИЕ ПРОГРАММЫ 6 3.1 Описание входного алфавита 6 3.2 Описание грамматических правил 6 4. ИСПОЛЬЗОВАННЫЕ АЛГОРИТМЫ И СТРУКТУРЫ 8 4.1 Конечный автомат (фаза лексического анализа) 8 4.2 Алгоритм рекурсивного спуска с возвратами (фаза синтаксического анализа) 8 4.3 Представление синтаксического дерева в виде ПОЛИЗ’а (вычисление константных выражений, фаза генерации кода) 8 5. ИСПОЛЬЗОВАННЫЕ ИНСТУМЕНТАЛЬНЫЕ СРЕДСТВА 9 5.1 Использованные средства 9 5.2 Диаграмма классов 10 6. РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ 11 6.1 Входной код 11 6.2 Выходной код 11 7. ПРИМЕРЫ РАБОТЫ ПРОГРАММЫ 13 7.1 Пример 1 13 7.2 Пример 2 14 8. ЗАКЛЮЧЕНИЕ 17 9. СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 18 ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ПРОГРАММЫ 19

Литература

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 1) Н.Н. Смирнова, С.Д. Тарасов «Основы Построения Компиляторов: учебно-практическое пособие», изд. БГТУ-СПб. 2000. 2) В. И. Юров «Assembler», «Питер Пресс», Санкт-Петербург, 2007.

Форма заказа

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

Тип работы *
Предмет *
Название *
Дата Сдачи *
Количество Листов*
уточните задание
Ваши Пожелания
Загрузить Файлы

загрузить еще одно дополнение
Страна
Город
Ваше имя *
Эл. Почта *
Телефон *
  

Название Тип Год сдачи Страниц Цена
Формирование массива содержащего сведения о телефонах абонентов Курсовая 2010 24 1500
Финансовый менеджмент его сущность и решаемые задачи Курсовая 2010 21 1500
Разработка программной документации Курсовая 2010 21 1500
Разработка интерпретатора си-подобного языка. Курсовая 2011 56 1000
Курсовой по дисциплине "Программирование Тема: Резонансная цепь с периодическим воздействием Курсовая 2011 15 800
Разработка системы диспетчеризации автотранспорта Курсовая 2011 34 1050
Разработка программного продукта для анализа данных о средних расстояниях перевозок и коэффициентах использования пробега Курсовая 2011 34 900
Игра Курсовая 2010 28 1500
Разработка программы на языке Ассемблер Курсовая 2010 12 1500
Курсовое проектирование по дисциплине «Средства быстрой разработки приложений» Курсовая 2011 19 1420
курсовые, дипломные, контрольные на заказ скидки на курсовые, дипломные, контрольные на заказ

© 2010-2016, Все права защищены. Принимаем заказы по всей России.