Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Грамматика.doc
Скачиваний:
6
Добавлен:
16.05.2015
Размер:
779.26 Кб
Скачать
  1. Разбор цепочек по созданной грамматике

Окно G&A (рис. 6) состоит из двух главных полей: правое поле – дерево разбора, левое – разбираемая цепочка.

Цепочку можно вводить в левое окно, используя клавиатуру, или открыть какой-нибудь текстовый файл, содержащий ее. Для загрузки цепочки из файла используется пункт меню Файл Открыть.

При вводе цепочки в леве окно в правом производится ее разбор по созданной грамматике и построение дерева. Если цепочка не соответствует грамматике, в правом окне появляется надпись «цепочка не распознана» (рис.6).

  1. Словарь нетерминальных символов

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

Рассмотрим пример разбора строки, приведенной в листинге 2 (разбор производится по грамматике, представленной в листинге 1).

Листинг 2. Строка для разбора.

if(x>=128)

if(z<4)

После ввода этой строки в левую панель справа будет построено дерево разбора. На верхнем уровне дерева (рис. 7) находится нетерминальный символ program, соответствующий всей рассматриваемой цепочке. Он представляет собой символ part_prog (см. строку [1] в листинге 1). В свою очередь, part_prog можно разложить на part (соответствует первой конструкции if в рассматриваемой цепочке) и снова символа part_prog (см. строку [2] в листинге 1).

  1. Верхний уровень дерева разбора

В тоже время конструкция part (рис.8) представлена в данном выражении нетерминальным символом if (см. строку [6]), которая, в свою очередь, содержит в себе следующие нетерминальные символы (см. строку [8] в листинге 1):

  1. Некоторая литера, участвующая в сравнении (liter).

  2. Один из символов сравнения – логическая операция (logic).

  3. Число, с которым производиться сравнение (number).

  1. Разбор конструкции if

Символы liter и logic представляют собой последовательность терминальных символов (строки [47] и [11] соответственно), а number - последовательность цифр, которые раскладываются по правилам [9]-[10] из листинга 1 (рис. 9).

  1. Разбор цепочки

  1. Подготовка к лабораторной работе

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

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

  2. Проанализировать структуру выделенных цепочек – выделить в них начало, конец, повторяющиеся части и символы.

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

  4. Для каждой из выделенных структурных частей построить правила грамматики.

  5. Объединить все правила в грамматику.

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

В процессе выполнения лабораторной работы студенту необходимо:

  1. Используя текстовый редактор создать файл с грамматикой.

  2. Проверить грамматику на соответствие формальным правилам описания и транслировать ее.

  3. Запустить G&A и выполнить разборы цепочек. Определить, принадлежат ли выбранные цепочки языку. Порожденные цепочки записать в файл, используя команду Сохранить.

  4. Если получены цепочки, которые не принадлежат языку, то необходимо изменить грамматику и повторить вывод цепочек.

  5. По окончании лабораторной работы файлы с грамматикой и выведенными цепочками необходимо сохранить в архиве.