Задание № 5

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

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

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

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

-     расширить грамматики, разработанные при выполнении задания №4 до грамматики полного заданного на расчетно-графическую работу учебного языка;

-     изучить и освоить проверку принадлежности грамматики к классу LL(1), используя подпункт «Множества выбора» пункта «Показать» основного меню;

-     выполняя эквивалентные преобразования или полностью перерабатывая, добиться того, чтобы грамматика учебного языка стала принадлежать классу LL(1);

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

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

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

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