Задание № 3
1. Тема: «Лексика языков программирования. Расширение
функциональности лексического акцептора, формирование таблиц идентификаторов и
констант».
2. Цели работы: изучение способов расширения лексических
акцепторов до функциональности лексических анализаторов, структуры
информационных таблиц трансляторов, методов организации поиска в таблицах и
пополнения таблиц, алгоритмов преобразования цепочек символов (слов) в их
внутренние эквиваленты – токены (лексемы).
3. Порядок выполнения работы:
3.1. Ориентируясь на свой вариант задания на курсовую
работу, выбрать способ реализации и разработать совокупность действий,
обеспечивающих:
-
подавление
лексически правильных слов (таких как последовательности символов
форматирования текста и комментарии), не используемых при проверке синтаксиса;
-
поиск в таблицах
для таких групп слов, как идентификаторы и/или константы;
-
пополнение
таблиц;
-
преобразование
правильных слов в лексемы;
-
формирование
диагностических сообщений о лексических ошибках.
3.2. Используя пакет ВебТрансЛаб,
освоить:
-
включение
структур данных и действий в систему регулярных выражений;
-
обнаружение и
анализ конфликтных ситуаций, возникающих при пересечении различных групп слов
(например – идентификаторы / служебные слова в С-подобных языках программирования);
-
методику разработки
и отладки системы действий, обеспечивающих формирование и обработку таблиц
идентификаторов/констант.
3.3. Построить программные модули (с графовым
и табличным лексическим акцептором) на языке шаблонов ВебТрансЛаба,
изучить их структуру и способ вызова действий, расширяющих акцептор до
анализатора.
3.4. Провести разработку полной системы регулярных выражений
и встроенных действий для лексики учебного языка, заданного на расчетно-графическую
работу. При необходимости разработать действия для обработки конфликтных
ситуаций. Построить и отладить лексический анализатор, убедиться в его
работоспособности.
3.1. Подготовить, сдать и защитить отчет по заданию (в
электронном виде, в формате MS Office 2003).