Дипломная работа: Программно методический комплекс для обучения процессу создания компиляторов
2.3.7 Примерное задание для студента............................... 52
2.3.8 Описание работы лексического анализатора............. 53
2.4 Синтаксический анализатор SinAn........................................ 56
2.4.1 Таблица переходов...................................................... 56
2.4.2 Правила работы с таблицей переходов...................... 60
2.4.3 Правила таблицы переходов для написания программы 62
2.4.4 Формируемая таблица переходов. Правила заполнения 65
2.4.5 Правила заполнения формируемой таблицы переходов 66
2.4.6 Построение деревьев................................................... 81
2.4.7 Семантический анализ................................................. 83
2.5 Формирование промежуточного кода................................... 85
Циклы.................................................................................... 85
3 Определение трудоемкости по стадиям разработки........................... 89
3.1 Методика расчета.................................................................. 89
3.2 Определение затрат на выполнение проекта по стадиям разработки........................................................................................................ 92
3.3 Расчет затрат на выполнение проекта по этапам.............. 94
4 Рекомендации по охране труда при работе с учебным комплексом. 95
Заключение.............................................................................................. 97
Список использованных источников...................................................... 98
Приложения............................................................................................. 99
Введение
Каждый преподаватель вправе преподносить материал и обучать студентов по любой из дисциплин так, как он считает нужным.
Преподаватель желает, чтобы знания по преподаваемым наукам лучше усваивались студентами. Часто материал не усваивается из-за того, что нет его наглядного представления, нет материалов, будь то программных или выполненных в виде плакатов, стендов, способствующих более глубокому пониманию.
Для того чтобы создать демонстрационный вспомогательный материал следует наработать необходимую базу. Что занимает много времени и требует определенных усилий и больших временных затрат. В результате могут быть получены плакаты, методические пособия, программные средства (тестовые, обучающие) и др. Некоторые из них можно применять и в отсутствии преподавателя для самообучения, для контроля знаний и т. п.
Для проверки знаний часто используют тестовые системы, в которых проверка знаний происходит в интерактивном режиме. Некоторые из них лишь выдают какой-то общий результат, другие определяют, где и на каком этапе возникла ошибка, и сообщают об этом пользователям (используется в компиляторах).
1 Анализ предметной области
1.1 Компиляторы
Транслятор - это программа, которая переводит исходную программу в эквивалентную ей объектную программу. Если объектный язык представляет собой автокод или некоторый машинный язык, то транслятор называется компилятором.
Автокод очень близок к машинному языку; большинство команд автокода - точное символическое представление команд машины.
Ассемблер - это программа, которая переводит исходную программу, написанную на автокоде или на языке ассемблера (что, суть, одно и то же), в объектный (исполняемый) код.
Компиляторы пишутся как на автокоде, так и на языках высокого уровня. Кроме того, существуют и специальные языки конструирования компиляторов - компиляторы компиляторов.
Компилятор компиляторов (КК) – система, позволяющая генерировать компиляторы; на входе системы - множество грамматик, а на выходе, в идеальном случае, - программа. Иногда под КК понимают язык программирования, в котором исходная программа - это описание компилятора некоторого языка, а объектная программа - сам компилятор для этого языка. Исходная программа КК - это просто формализм, служащий для описания компиляторов, содержащий, явно или неявно, описание лексического и синтаксического анализаторов, генератора кодов и других частей создаваемого компилятора. Обычно в КК используется реализация схемы т.н. синтаксически управляемого перевода. Кроме того, некоторые из них представляют собой специальные языки высокого уровня, на которых удобно описывать алгоритмы, используемые при создании компиляторов.