Книга: Системное программное обеспечение. Лабораторный практикум
Пример выполнения курсовой работы
В качестве примера для иллюстрации выполнения курсовой работы будет взят входной язык, который, с одной стороны, не совпадает ни с одним из вариантов задания, а с другой стороны – позволяет хорошо проиллюстрировать все методы и технические приемы, которые полезны при выполнении работы.
Многие методы, технические приемы и их реализация в курсовой работе будут взяты из лабораторных работ № 1–4, которые были рассмотрены ранее. Другие методы, наоборот, будут реализованы иначе, чтобы проиллюстрировать все существующие возможности, их преимущества и недостатки. В каждом случае будет дано пояснение, почему использован тот или иной метод.
В примере проиллюстрированы следующие интересные моменты:
• разделение лексического и синтаксического анализаторов с целью упрощения работы последнего (на примере унарной арифметической операции «-» и операции сравнения типа «не равно»);
• обнаружение присваивания значений константам на этапе синтаксического разбора (в лабораторных работах № 3 и 4 эта же операция выполнялась на этапе семантического анализа перед генерацией кода);
• возможности преобразования исходной грамматики, изменения синтаксиса входного языка и модификации алгоритма синтаксического разбора на основе анализа правил грамматики (на примере условного оператора);
• модификация остовной грамматики при необходимости различать правила;
• методы обработки логических операций и операций сравнения;
• простейший семантический анализ и модификация результирующего кода на этапе семантического анализа (на примере обработки переменных InpVar и CornpileTest);
• элементарные методы машинно-зависимой оптимизации результирующего кода.
Для реализации курсовой работы будут использоваться программные модули, созданные при выполнении лабораторных работ № 1–4, код которых не зависит от входного языка. Такой подход иллюстрирует, насколько удобно и эффективно выделять не зависящую от входного языка часть компилятора в отдельные модули или библиотеки.
- Задание для примера выполнения работы
- Грамматика входного языка
- Описание выбранного способа организации таблицы идентификаторов
- Описание лексического анализатора
- Описание синтаксического анализатора
- Внутреннее представление программы и генерация кода
- Описание используемого метода оптимизации
- Текст программы компилятора
- Выводы по проделанной работе
- Приложение 4 Примеры входных и результирующих файлов для курсовой работы
- Пример выполнения работы
- Пример установочного скрипта
- Пример из практики
- Права для выполнения резервного копирования
- Типы данных для работы с датой и временем
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Упражнения для самостоятельного выполнения
- Примеры получения статистики
- Пример применения метода «пять почему»
- Новые функции API для работы с Blob и массивами
- 10 Алгоритм работы с возражениями