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