Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
tyap(l).doc
Скачиваний:
22
Добавлен:
30.07.2019
Размер:
806.91 Кб
Скачать
  1. Формальные грамматики. Порождающие грамматики Хомского.

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

Определение. Порождающей грамматикой Хомского G называется четверка объектов: G = (T, N, S, R), где:

Т - конечное непустое множество (терминальный словарь). Элементы множества T будем называть терминальными символами;

N - конечное непустое множество (нетерминальный словарь). Элементы множества N будем называть нетерминальными символами; множества N и T не пересекаются;

S - выделенный элемент нетерминального словаря, S N так называемый начальный символ;

R - конечное непустое множество правил (продукций), каждое из кото­рых имеет вид , где и , и — это цепочки над объединенным слова­рем T N, т. е. составлены как из терминальных, так и из нетерминальных символов.

Пример. Рассмотрим следующую грамматику Хомского: , где:

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

цепочку можно представить как конкатенацию трех цепочек, (некоторые из этих цепочек могут быть пустыми);

цепочку также можно представить как конкатенацию трех цепочек ;

в грамматике G есть продукция "разрешающая" вместо подцепочки т подстановку цепочки .

Каждая грамматика Хомского G определяет

свое бинарное отношение, на множестве T N всех цепочек, состав­ленных из терминальных и нетерминальных символов грамматики G: две та­кие цепочки находятся в этом отношении, если из первой можно получить вторую, используя какое-либо из правил грамматики G.

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

Определение. Из цепочки выводима цепочка в грамматике G, если существует конечное множество цепочек , такое, что , и для всех i=1,..n выполняется .

Иными словами, цепочка выводима из цепочки в грамматике G, если можно получить из за конечное число шагов применения операции непо­средственной выводимости.

Определение. Языком, порождаемым грамматикой G, называется мно­жество терминальных цепочек, выводимых из начального символа грамма­тики. Или, формально, .

Итак, любой вывод цепочек языка мы должны начинать только с начального нетерминального символа. Если после произвольного конечного числа под­становок, выполненных в соответствии с правилами грамматики, полученная в результате цепочка состоит только из терминалов, то это цепочка является цепочкой порождаемого данной грамматикой языка. Отсюда ясны названия терминальные/нетерминальные символы. Только терминальные, оконча­тельные символы могут встретиться в цепочках языка, заканчивающих вы­вод. Нетерминальные — это дополнительные, вспомогательные символы, необходимые для задания языка конечным набором правил.