Автор: Пользователь скрыл имя, 19 Апреля 2011 в 22:36, реферат
Лингвистическое обеспечение объединяет совокупность языковых средств для формализации естественного языка, построения и сочетания информационных единиц. Для описания строения естественных и искусственных языков математической логикой разработан формальный аппарат. Изучение способов математического описания правильных текстов составляет содержание одного из разделов математической логики — теории способов описания синтаксической структуры.
Введение 2
1. Описание синтаксиса языка 4
1.1 Бэкуса-Наура формы (БНФ) 4
1.2 Расширенные Бэкуса-Наура формы (РБНФ) 5
1.3 Диаграммы Вирта 7
2. Формальная грамматика 10
3. Типы грамматик 13
3.1 Классификация формальных грамматик 13
3.2 Неограниченные грамматики 15
3.3 Контекстно-зависимые грамматики 16
3.4 Контекстно-свободные грамматики 17
3.5 Регулярные грамматики 18
Грамматика типа 2 - контекстно-свободные, при чем в левой части нетерминал может быть всем, чем угодно. Они распознаются в информатике так называемыми автоматами с магазинной памятью (стековые автоматы). Используются для генерации элементов языков программирования (выражений, команд).
Грамматика типа 3 - называют регулярными, самые простые и ограниченные грамматики, распознаются конечными автоматами. Используется для простых элементов языков (числа, константы, переменные).
К типу 0 по классификации Хомского относятся неограниченные грамматики (также известные как грамматики с фразовой структурой). Это — все без исключения формальные грамматики. Для грамматики G = (T,N,P,S), α=T∪N все правила имеют вид:
Практического применения в силу своей сложности такие грамматики не имеют.
Контекстно-зависимая грамматика - частный случай формальной грамматики, у которой левые и правые части всех продукций могут быть окружены терминальными и нетерминальными символами.
Формальная грамматика G = (N, T, S, P) является контекстно-зависимой, если все правила P имеют вид: αSβ → αωβ, где:
Язык, который может быть задан Контекстно-зависимой грамматикой, называется контекстно-зависимым языком или Контекстно-зависимым языком.
Контекстно-свободная грамматика — частный случай формальной грамматики, у которой левые части всех продукций являются одиночными нетерминалами. Смысл термина «контекстно-свободная» заключается в том, что возможность применить продукцию к нетерминалу, в отличие от общего случая грамматики Хомского, не зависит от контекста этого нетерминала.
Формальная грамматика G = (N, T, S, P) является контекстно-свободной, если все правила P имеют вид: α→β, где:
Язык, который может быть задан Контекстно-свободной грамматикой, называется контекстно-свободным языком. Контекстно-свободная грамматика описывается БНФ (Формой Бэкуса-Наура).
Они являются контекстно-
Все регулярные грамматики могут быть разделены на два эквивалентных класса, которые будут иметь правила следующего вида:
Регулярные выражения состоят из констант и операторов, которые определяют множества строк и множества операций на них соответственно. На данном конечном алфавите Σ определены следующие константы:
и следующие операции:
Любая регулярная грамматика G=(N,T, P, S) может быть представлена направленным графом с помеченными узлами и дугами. Каждый узел такого графа может быть помечен символом, являющимся элементом множества N, кроме одного специального – «конечного» узла, помеченного символом #.
Недетерминированный конечный автомат (НКА) — это пятерка A = (K, T, t, k, F), где:
К — конечное множество состояний, или вершин;
T — входной алфавит (также конечный);
t — множество команд, или дуг;
k — множество начальных состояний;
F — множество заключительных состояний.
Множество t можно также интерпретировать как отображение KxT в множество подмножеств K.
Существуют алгоритмы, позволяющие по регулярному выражению построить эквивалентный (т. е. определяющий тот же язык) конечный автомат, и наоборот, по автомату построить эквивалентное ему выражение.
Алгоритм построения НКА по праволинейной грамматике
1. Множество вершин НКА состоит из нетерминалов грамматики и еще одной новой вершины F, которая объявляется заключительной.
2. Каждому правилу вида А → аВ в автомате соответствует дуга из вершины А в вершину В, помеченная символом а: A⎯⎯a→B. Каждому правилу вида A → a соответствует дуга A⎯⎯a→F . Других дуг в автомате нет.
3. Начальной вершиной автомата является вершина, соответствующая начальному символу грамматики. Вершина В является заключительной, если в грамматике есть правило В → ε. Кроме того, заключительной является F, построенная на шаге 1.
Для
любого НКА, имеющего несколько начальных
вершин, можно построить эквивалентный
ему НКА с единственной начальной
вершиной. По такому автомату легко
построить эквивалентную
Алгоритм построения праволинейной грамматики по НКА с единственной начальной вершиной
1.
Нетерминалами грамматики
2. Для каждой дуги вида A⎯⎯a→B в грамматику добавляется правило А → аВ. Для каждой заключительной вершины B в грамматику добавляется правило В → ε.
3. Начальным символом является нетерминал, соответствующий начальной вершине.
4. К построенной по пунктам 1—3 грамматике применить алгоритм устранения ε-правил, затем — алгоритм удаления бесполезных символов (приведения грамматики).
Для построения леволинейной грамматики по НКА, НКА следует сначала преобразовать в эквивалентный автомат с единственной заключительной вершиной (такое преобразование всегда возможно).
Алгоритм построения леволинейной грамматики по НКА с единственным заключительным состоянием
1.
Нетерминалами грамматики
2. Для каждой дуги A⎯⎯a→B в грамматику добавляется правило В → Аа. Для каждой начальной вершины В в грамматику добавляется правило В → ε.
3. Начальным символом будет нетерминал, соответствующий заключительной вершине.
4. К построенной по пунктам 1—3 грамматике применить алгоритм устранения ε-правил, затем — алгоритм приведения грамматики.
Конечный автомат называется детерминированным конечным автоматом (ДКА), если он имеет единственное начальное состояние, и любые две дуги, исходящие из одной и той же вершины имеют различные пометки.
Все
автоматы в примерах 1—4 не являются
детерминированными.