Задание № 6

1.   Тема: «Синтаксис языков программирования. Нисходящий синтаксический анализ, автоматные реализации».

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

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

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

-     продолжить освоение проверки принадлежности грамматики к классу LL(1), используя в качестве проверяемых грамматики, полученные при выполнении заданий №4 и №5;

-     построить конечный автомат со стековой памятью и несколькими состояниями (шаблон …SyntAsMultiFSM…), разобраться в структуре управляющей таблицы автомата, уяснить способы формирования и использования всех полей;

-     построить конечный автомат со стековой памятью и одним состоянием, управляемый входным символом и символом, снятым с верхушки стека (шаблон …SyntAsSingleFSM…), разобраться в структуре управляющей таблицы автомата, уяснить способы формирования и использования клеток таблицы;

3.2.    Выполнить трассировку процессов нисходящего синтаксического акцепта, изучить функционирование всех построенных синтаксических акцепторов при разборе как правильных предложений, так и предложений с намеренно внесенными синтаксическими ошибками.

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

3.4.    Подготовить, сдать и защитить отчет по заданию.