Книга: Системное программное обеспечение. Лабораторный практикум
Рекомендации по выполнению работы
Рекомендации по выполнению работы
В любом случае при знакомстве с примером выполнения работы и при выполнении работы по своему заданию надо обратить внимание на следующие основные моменты:
1. Построение грамматики входного языка – это определяющий момент в курсовой работе. Правильно построенная грамматика существенно упростит выполнение работы, а ошибки, напротив, могут существенно увеличить трудоемкость последующих этапов. Рекомендуется, построив грамматику, сразу же проконсультироваться с преподавателем, чтобы исправить возможные ошибки на ранней стадии.
2. Выполняющий курсовую работу должен решить для себя, как он будет строить лексический и синтаксический анализаторы: самостоятельно (вручную) или автоматизированным методом (с использованием специализированного ПО – рекомендуются программы LEX и YACC). Автоматизированный метод проще и быстрее, но требует от автора работы времени на освоение специализированного программного обеспечения. Возможно сочетать оба метода: например, построить лексический анализатор с помощью программы LEX (она достаточно проста в использовании), а синтаксический анализатор – вручную. Рекомендации на этот счет каждый должен выбрать, оценив свои силы в возможности освоения нового программного обеспечения.
3. Создание лексического анализатора – это этап, не представляющий особой сложности, так как построение КА для лексического анализатора представляет собой полностью формализованный процесс (при выполнении которого в первую очередь важна внимательность). Но при выполнении этого этапа главная задача не в том, чтобы грамотно построить КА – в этом, чаще всего, нет проблем, – а в том, чтобы максимально эффективно разделить анализ, выполняемый лексическим анализатором, и анализ, выполняемый анализатором синтаксическим. Как правило, чем больше работы выполняет лексический анализатор, тем лучше. Уже построив грамматику языка, нужно иметь представление о том, какие элементы языка будут выделяться на этапе лексического анализа.
4. Выбор класса КС-грамматики для создания синтаксического анализатора – это, с точки зрения автора, второй по важности этап после построения грамматики. Задание составлено так, что любой входной язык может быть задан грамматиками, анализируемыми по крайней мере тремя методами: методом рекурсивного спуска (или же ХХ(1) – грамматикой), методом на основе грамматик операторного предшествования и методом на основе LR(1) или LALR(1) – грамматик. Важно построить грамматику входного языка так, чтобы она соответствовала интересующему методу, или же уметь преобразовать ее к требуемому виду. К сожалению, тут нет формализованных рекомендаций. Самый простой подход – взять для описания грамматики языка приемы и правила, рассмотренные при выполнении лабораторной работы № 3, тогда для построения синтаксического распознавателя с большой вероятностью подойдет метод на основе грамматик операторного предшествования.
5. Выбор формы внутреннего представления программы, методов оптимизации и генерации результирующего кода – это взаимозависимые процессы. Поскольку рассмотренные ранее методы и алгоритмы были основаны на использовании триад, автор не рекомендует пытаться использовать другие формы внутреннего представления.
Необходимую дополнительную информацию можно найти в литературе по компиляторам и системам программирования [1–4, 7].
- Типы данных для работы с датой и временем
- Общие рекомендации по безопасности
- Рекомендации по выбору архитектуры: Classic или SuperServer?
- Новые функции API для работы с Blob и массивами
- 10 Алгоритм работы с возражениями
- 33.1. Интерактивный и неинтерактивный режим работы
- 4. Режимы работы экспертных систем
- 5.4. РЕКОМЕНДАЦИИ НАЧИНАЮЩИМ ПО СОСТАВЛЕНИЮ ОПИСАНИЙ АЛГОРИТМОВ И ЭВРОРИТМОВ
- ГЛАВА 5. СИСТЕМНЫЕ ОПЕРАЦИИ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ
- Введение Визуализация работы коллективного интеллекта
- Пример использования шаблона «Выводы – рекомендации»
- Общие рекомендации поиска неисправностей