Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТАиФЯ(ч.2).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.15 Mб
Скачать

1.4 Классификация порождающих грамматик и языков

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

Грамматики типа 0 (ноль) - это грамматики, в которых не накладывается никаких ограничений на правила вывода , где и могут быть любыми цепочками из словаря .

Грамматики типа 1 - это грамматики, в которых содержатся правила , удовлетворяющие условиям , , где - нетерминальный символ, а , , и - цепочки из словаря . Таким образом, в грамматиках типа 1 отдельный нетерминальный символ переходит в непустую цепочку ( можно заменить на ) только в контексте , . Цепочки и иногда называют левым и правым контекстами данной продукции.

Грамматики типа 1 называют контекстными или контекстно-зависимыми (КЗ-грамматика).

Язык , порождённый КЗ-грамматикой, называется контекстно-зависимым языком (КЗ-язык).

Грамматики типа 2 - это грамматики, в которых допустимы лишь правила вида , где (нетерминальный символ), а - любая непустая цепочка из (т.е. в любом контексте). Грамматики типа 2 называются бесконтекстными или контекстно-свободными (КС).

Язык , порождённый КС-грамматикой, называется контекстно-свободным языком (КС-язык).

Грамматики типа 3 имеют правила вида либо , где ; . При этом являются одиночными символами (не цепочками) соответствующих словарей. Такие грамматики называются автоматными или регулярными, а язык, порождённый такой грамматикой, называется автоматным или регулярным.

Грамматику типа 3 (регулярную, Р-грамматику) можно определить как праволинейную либо как леволинейную.

Грамматика G = (T, N, P, S) называется праволинейной, если каждое правило из Р имеет вид A tB либо A t, где A N, B N, t T.

Грамматика G = (T, N, P, S) называется леволинейной, если каждое правило из Р имеет вид A Bt либо A t, где A N, B N, t T.

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

Кроме рассмотренной, существуют ещё и другие классификации грамматик. Приведем наиболее важные из них.

Грамматика непосредственных составляющих (НС-грамматика) - эта грамматика имеет правила вида или , где ; , , - произвольные цепочки.

Очевидно, что НС-грамматика может быть как контекстно-зависимой (КЗ), так и контекстно-свободной (КС).

Класс грамматик непосредственно составляющих (НС) значительно шире классов контекстно-зависимых (КЗ) и контекстно-свободных (КС) грамматик.

Любая КС-грамматика (КЗ-грамматика) есть НС-грамматика (но не наоборот!).

В НС-грамматике на каждом шаге разрешается заменять только один символ. Поэтому вывод в НС-грамматике удобно представить в виде дерева составляющих (С-маркера).

Язык , порождённый НС-грамматикой, называется языком непосредственно-составляющих (НС-языком).

Множество КЗ-языков и КС-языков являются подмножествами множества НС-языков.

Неукорачивающие грамматики - это грамматики, в которых для любого правила справедливо соотношение . Таким образом, в результате использования правил вывода (продукций) получают цепочку, длина которой не меньше длины исходной цепочки.

Пусть грамматика задана следующим набором:

; ; ;

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

НС-грамматика и равные им по порождающей силе неукорачивающие грамматики достаточны (хотя и не всегда удобны) для описания фраз естественных языков.

Соотношения между типами грамматик:

(1) любая регулярная грамматика является КС-грамматикой;

(2) любая регулярная грамматика является УКС-грамматикой;

(3) любая КС-грамматика является КЗ-грамматикой;

(4) любая КС-грамматика является неукорачивающей грамматикой;

(5) любая КЗ-грамматика является грамматикой типа 0.

  1. любая неукорачивающая грамматика является грамматикой типа 0.

Как любая порождающая грамматика, НС-грамматика содержит только правила образования, но не преобразования языковых выражений.

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

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

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

Грамматики, использующие такие правила, называют трансформационными.

Основой трансформационных грамматик является предположение о том, что порождение предложения человеком осуществляется в два этапа.

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

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

Исходная НС-грамматика называется базовой, а правила преобразования - трансформациями.

Формально глубинная структура представляет собой С-маркер, порожденный категориальными правилами, т.е. правилами вывода, не содержащими терминальных символов.

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

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

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