Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие ДМ2 15.10.11.doc
Скачиваний:
220
Добавлен:
31.05.2015
Размер:
16.53 Mб
Скачать

2.5.4. Понятие формальной грамматики

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

Формальная грамматика — система правил, описывающая множество конечных последовательностей символов. Конечные последовательности (цепочки), входящие в указанное множество, называются предложениями, а само множество — языком, описываемым данной формальной грамматикой. Различают два типа формальных грамматик:

  1. Грамматики порождающие— это системы правил, позволяющие строить предложения языка.

  2. Грамматики распознающие— это алгоритм, распознающие по любой цепочке, является ли она предложением или нет.

Определение. Порождающей грамматикойназывается четверка (V,T,P,A), где V — конечный алфавит, состоящий изсимволов,- подмножествотерминальныхсимволов,- выделенный нетерминальный символ, обозначающий совокупность всех порождаемых объектов;P- конечное множествоправил порождениявидаu→ν, где u — непустая строка нетерминальных символов, а ν — некоторая строка. Множествовсех строк терминальных символов, которые можно получить применением правил порождения, называетсяязыком. Оно является подмножествоммножества — всех строк символов из T.

В приложениях к грамматике естественных языков терминальными считаются обычные слова, а символы из — есть названия частей речи и других грамматических категорий. Правила порождения здесь могут быть следующего типа А = <предложение> →<подлежащее><сказуемое> и правила подстановки типа <подлежащее> →<мальчик> и <сказуемое>→ <улыбается>. Строки терминальных символов языка являются грамматически правильнымипредложениями.

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

Рассмотри примеры порождающих грамматик с,т.е. грамматик с единственной грамматической категорией.

  1. Пустьи P состоит из двух правил порождения,. Эта грамматика порождает язык, т.е. Множествосостоит из всех конечных строк, составленных из символа C.

  2. Пусть и P состоит из следующих правил порождения:

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

  1. Пустьи состоит из правил порождения,. Она порождает язык.

  2. Пусть , а P состоит из правил порождения,,. Она порождает язык, состоящий из всех строк в,закончившихся на b.

Определение. Правило порожденияназываетсяконтекстно -свободным, если оно применимо к любой строке видаи дает строку. Язык, который порождается лишь контекстно-свободными правилами, называетсяконтекстно-свободным.

Если разрешается применять правило к строкелишь при некоторых a,b, то это правило называетсязависящим от контекста. Заметим при этом, что правила естественных языков в сильной степени зависят от контекста. Искусственные языки обычно являются контекстно-свободными.

2.5.5. Автоматные грамматики.

Рассмотрим языки, которые «принимаются» или «распознаются» автоматами с конечным числом состояний. Такой после считывания символа в состоянии s переходит в новое состояние. Считав последний символ, автомат останавливается. Если он остановился в одном из «принимающих» состояний из отмеченного множестваF, входная строка считаетсяпринятой. Есликонечное состояние автомата лежит в, то строка считаетсяотвергнутой. Рассмотрим формальное определение.

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

- конечное множество входных символов,

- конечное множество внутренних состояний,

φ- функция изв,

- начальное состояние

- множество принимающих состояний.

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

Группа 12436

Данный акцептор принимает, в частности следующие строки как 001, 0001, 100, 1010, 10110.

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

Определение. Автоматной грамматикой называется четверка, где

- конечное множество входных символов,

- конечное множество терминальных символов,

- конечное множество правил порождения вида

- отмеченный начальный символ.

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

Шаг 1. Каждому нетерминальному символу из постaвить в соответствие вершину графа.

Шаг 2. Каждому правилупоставить в соответствие дугу от вершиныквершине, помеченную символом.

Шаг 3. Каждому правилупоставить в соответствие дугу от вершины к новой вершине, с пометкой ПРИНЯТЬ.

Пример. На рисунке показана диаграмма состояний (помеченный ориентированный граф), отвечающая автоматной грамматике Gс правилами.

с

Полотно 141

Для автоматных грамматик справедлив ряд утверждений (теорем):

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

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

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

  4. Существуют контекстно-свободные языки, не являющиеся автоматными языками.