Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MLTA_shpory2.doc
Скачиваний:
101
Добавлен:
23.12.2018
Размер:
2.34 Mб
Скачать

72. Теория формальных грамматик. Формальные порождающие грамматики. Язык, порождаемый грамматикой.

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

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

Порождающая грамматика состоит из четырех компонент: Г = (V, W, J, R), где V и W — непересекающиеся конечные множества, называющиеся основным и вспомогательным алфавитами (или словарями); элементы этих множеств называются соответственно основными (или терминальными) и вспомогательными (или нетерминальными) символами; J — выделенный вспомогательный символ, называемый начальным символом; R — конечный набор правил вывода, имеющих вид j ® y, где j и y — цепочки, состоящие из основных и вспомогательных символов.

Основные символы — слова языка,

вспомогательные — как имена классов слов и словосочетаний,

начальный символ — как символ предложения (т.е. имя класса словосочетаний, являющихся предложениями).

Правила вывода описывают связи между частями предложения. Применение правила j ® y к цепочке, имеющей вид bja, означает преобразование ее в цепочку bya (здесь a и b — цепочки, одна из которых или обе могут быть пустыми).

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

Цепочка b непосредственно выводима из цепочки a в грамматике G (ÞaGb), если a=dxg, b = dhg и h®x — правило G.

Цепочка b выводима из a, если существует последовательность e0 = a, e1, e2, …, en = b, такая, что для всех i = 0, …, n –1 eii + 1. Эта последовательность называется выводом b из a, a n (число ее элементов, отличных от a) — длиной вывода.

Выводимость b из a обозначается Þanb или Þa*b.

Языком L(G), порождаемым грамматикой G, называется множество всех цепочек в терминальном алфавите V, выводимых из J.

Грамматики G и G¢ эквивалентны, если L(G) = L(G¢).

73. Классификация грамматик и порождаемых ими языков.

Грамматика типа 0 — это грамматика произвольного вида, без ограничений на правила вывода.

Грамматика типа 1, или контекстная грамматика — это грамматика, все правила которой имеют вид aAbwa®b, где Îw(VÈW)+. Цепочки a и b — это контекст правила. Они не изменяются при его применении.

Грамматика типа 2, или контекстно-свободная (КС-) грамматика, — грамматика, все правила которой имеют вид Aa®, где Îa(VÈW)*

Грамматика типа 3, или регулярная грамматика, — грамматика, все правила которой имеют вид либо A®aB, либо A®a.

Язык L называется языком типа i (i = 0, 1, 2, 3), если существует порождающая его грамматика типа i.

Пример : Язык {аnbn} является КС-языком (языком типа 2), поскольку он порождается КС-грамматикой с двумя правилами вывода:

J ® аJb и J ® аb.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]