Задание № 4

1.   Тема: «Синтаксис языков программирования. Формальные грамматики».

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

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

3.1.    Изучить интерфейс пакета ВебТрансЛаб, предназначенный для работы с синтаксическими правилами.

3.2.    На примерах 3 и 4 (грамматики Ga1 и Ga2 из учебного пособия) изучить и освоить:

-       ввод и редактирование правил грамматики;

-       построение синтаксических акцепторов с целью вычисления свойств грамматики и ее символов;

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

-       понятия множеств предшественников и множеств последователей для нетерминальных символов;

-       понятие множеств выбора правил грамматики и их пересечений для правил с одинаковыми нетерминалами в левой части.

3.3.    Ориентируясь на свой вариант задания на расчетно-графическую работу, модифицировать (расширить) грамматики Ga1 и Ga2 до грамматик операторов присваивания, условного оператора и оператора цикла, добавляя новые нетерминалы и правила по технологии разработки «снизу вверх». Изучить свойства полученных грамматик и их символов.

3.4.    Используя полученные навыки работы с грамматиками и программным обеспечением, начать поэтапную разработку грамматики по технологии «сверху вниз» для заданного варианта курсовой работы.

3.5.    Оценить свои субъективные проблемы и трудности разработки формальных грамматик при использовании разных технологий («снизу вверх» и «сверху вниз»). Выбрать наиболее субъективно подходящую технологию для выполнения задания на расчетно-графическую работу.

3.6.    Подготовить, сдать и защитить отчет по теме.