Скачать презентацию Формальные грамматики Формальные грамматики n Формальные грамматики Скачать презентацию Формальные грамматики Формальные грамматики n Формальные грамматики

Lec_5.ppt

  • Количество слайдов: 10

Формальные грамматики Формальные грамматики

Формальные грамматики n Формальные грамматики (ФГ) – это математические модели, использующие построение текстов по Формальные грамматики n Формальные грамматики (ФГ) – это математические модели, использующие построение текстов по определенным правилам в виде цепочки символов. n ФГ используются, если необходимо однозначное распознавание входного текста. n Пример применения: Написан код программы. Входной текст преобразуется транслятором.

Алфавит ФГ n Алфавитом называется конечное множество символов (букв), неделимых в данном рассмотрении. Упр Алфавит ФГ n Алфавитом называется конечное множество символов (букв), неделимых в данном рассмотрении. Упр 30: Заданы алфавиты А 1 и А 2 определить количество букв для каждого Алфавит А 1 = {a, b, c, +, !}. Алфавит A 2 = {00, 01, 10, 11} n Словом или цепочкой называется последовательность букв алфавита. Длина слова – число букв в слове. Упр 31: Для алфавита А 1 и А 2 заданы слова ab++c, 00110010. Какую длину они имеют?

Задание ФГ n Формальной порождающей грамматикой G n n называется совокупность объектов {VT, VA, Задание ФГ n Формальной порождающей грамматикой G n n называется совокупность объектов {VT, VA, I , R} где VT – терминальный алфавит (терминальные символы образуют СЛОВА порождаемые грамматикой) VA – нетерминальный алфавит (нетерминальные символы – вспомогательные, не входят в слова порождаемые грамматикой) I - начальный символ грамматики (обязательно нетерминальный). R – множество правил вывода . Где и цепочки построенные из букв как терминального так и нетерминального алфавита (VT VA).

Упражнение n Упр 32: Задана порождающая грамматика Г, определить множество слов т. е. язык Упражнение n Упр 32: Задана порождающая грамматика Г, определить множество слов т. е. язык порождаемый этой грамматикой VT = {a, b, c, d, $-пустой символ}, VA = {I, B, C}, R = { (1) I a. B, (2) B Cd, (3) B dc, (4) C $} n Упр 33: Задана порождающая грамматика Г, определить множество слов т. е. язык порождаемый этой грамматикой VT = {0, 1, $-пустой символ }, VA = {I, A}, R = {(1) I 0 A 1, (2) 0 A 00 A 1, (3) A $} n Упр 34: Задана порождающая грамматика Г, определить множество слов т. е. язык порождаемый этой грамматикой VT = {a, b}, VA = {I, A}, R = {(1) I a. A, (2) A b. A}

Классификация грамматик по Хомскому n Грамматика типа 0 – нет ограничений на правила вывода Классификация грамматик по Хомскому n Грамматика типа 0 – нет ограничений на правила вывода n Грамматика типа 1 (контексная) – все правила имеют n n вид A . Где и (VT VA)* (может быть пустым) , (VT VA)+ (НЕ может быть пустым). и называются контексными правилами. Грамматика типа 2 (контексно свободная) - все правила имеют вид A Грамматика типа 3 (регулярная) - все правила имеют вид A a. B, A a Замечание: Между множествами языков различных типов существуют отношения включения L 3 L 2 L 1 L 0 Практическое применение наиболее часто находят грамматики типов 2 и 3.

Упражнения n Упр 35: Определить к какому типу грамматик, относится грамматика VT = {a, Упражнения n Упр 35: Определить к какому типу грамматик, относится грамматика VT = {a, b, c, d}, VA = {I, A, B}, R = {(1) I a. AI, (2) AI AAI, (3) AAA ABA, (4) A b, (5) b. BA b. CDA, (6) b. I ba} n Упр 36: Определить к какому типу грамматик, относится грамматика VT = {a, b}, VA = {I}, R = {(1) I a. Ia, (2) I b. Ib, (3) I aa, (4) I bb} n Упр 37: Определить к какому типу грамматик, относятся грамматика VT = {a, b, $-пустой символ}, VA = {I, A, Z}, R = {(1) I a. I, (2) I a. A, n (3) A b. A, (4) A b. Z, (5) Z $ }

Построение дерева вывода в КС грамматике n Корень дерева – это начальный символ грамматики Построение дерева вывода в КС грамматике n Корень дерева – это начальный символ грамматики I (0 ярус дерева) n Пусть А – вершина, находящаяся на ярусе k-1. Если правило вывода A , то к построенному дереву, добавляют ярус k. На котором располагают символы входящие в цепочку и соединяют их дугами с вершиной А. n Результатом вывода является множество конечных узлов – листьев, которые выписываются при обходе дерева слева-вниз - направо-вверх. n Упр 38: Заданна грамматика VT = {a, b}, VA = {I}, R = {(1) I a. Ib, (2) I ab}? Построить дерево вывода для слова aaaabbbb

Синтаксический разбор n Синтаксический разбор цепочки – выписывание правил вывода для цепочки вывода n Синтаксический разбор n Синтаксический разбор цепочки – выписывание правил вывода для цепочки вывода n Упр 39: Заданна грамматика VT = {i, +}, VA = {I, T, P}, R = {(1) I I+T, n (2) I T, (3) T P, (4) P i}. Даны два синтаксических разбора {1, 2, 3, 4} и {1, 3, 2, 3, 4, 4}. Какие цепочки выводятся по представленным синтаксическим разборам? Построить соответствующие деревья вывода.

Типы выводов При выводе возможны ситуации n Одно и то же слово получают различными Типы выводов При выводе возможны ситуации n Одно и то же слово получают различными последовательностями правил вывода n Различные синтаксические разборы могут соответствовать одному и тому же дереву вывода. Типы выводов: правосторонний (заменяется каждый правый нетерминальный символ) левосторонний (заменяется каждый левый нетерминальный символ) Упр 40: К какому типу выводов относятся выводу в предыдущем примере.