Задание № 3

1.   Тема: «Лексика языков программирования. Расширение функциональности лексического акцептора, формирование таблиц идентификаторов и констант».

2.   Цели работы: изучение способов расширения лексических акцепторов до функциональности лексических анализаторов, структуры информационных таблиц трансляторов, методов организации поиска в таблицах и пополнения таблиц, алгоритмов преобразования цепочек символов (слов) в их внутренние эквиваленты – токены (лексемы).

3.   Порядок выполнения работы:

3.1. Ориентируясь на свой вариант задания на курсовую работу, выбрать способ реализации и разработать совокупность действий, обеспечивающих:

-    подавление лексически правильных слов (таких как последовательности символов форматирования текста и комментарии), не используемых при проверке синтаксиса;

-    поиск в таблицах для таких групп слов, как идентификаторы и/или константы;

-    пополнение таблиц;

-    преобразование правильных слов в лексемы;

-    формирование диагностических сообщений о лексических ошибках.

3.2. Используя пакет ВебТрансЛаб, освоить:

-    включение структур данных и действий в систему регулярных выражений;

-    обнаружение и анализ конфликтных ситуаций, возникающих при пересечении различных групп слов (например – идентификаторы / служебные слова в С-подобных языках программирования);

-    методику разработки и отладки системы действий, обеспечивающих формирование и обработку таблиц идентификаторов/констант.

3.3. Построить программные модули (с графовым и табличным лексическим акцептором) на языке шаблонов ВебТрансЛаба, изучить их структуру и способ вызова действий, расширяющих акцептор до анализатора.

3.4. Провести разработку полной системы регулярных выражений и встроенных действий для лексики учебного языка, заданного на расчетно-графическую работу. При необходимости разработать действия для обработки конфликтных ситуаций. Построить и отладить лексический анализатор, убедиться в его работоспособности.

3.1. Подготовить, сдать и защитить отчет по заданию (в электронном виде, в формате MS Office 2003).