Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TAiFYA(X-file).doc
Скачиваний:
18
Добавлен:
24.04.2019
Размер:
3.09 Mб
Скачать

2.Иерархия Хомского формальных языков.

Иерархия Хомского — классификация формальных языков и формальных грамматик, согласно которой они делятся на 4 типа по их условной сложности.

Согласно Хомскому, формальные грамматики делятся на четыре типа. Для отнесения грамматики к тому или иному типу необходимо соответствие всех её правил некоторым схемам.

Язык, порождаемый грамматикой.

L(G)={γ|S=>*γ, γєVT*}.

В зависимости от накладываемых ограничений на правило Р, выделяют 4 класса:

  1. Класс праволинейных грамматик и языков (ПрЛ).

Каждое правило из Р имеет вид: А→хВ, Ає VN, Вϵ VN, хϵ VT*

А→х, хϵ VT , Ає VN.

Пример. Грамматика и ей соответствующий язык из класса 1.

G=<{0.1}, {s}, P, S>

P: S→0S

S→1S L(G)={0,1}*

S→λ

1011: S=>(2) 1S=>(1)10S=>(2)101S=>(2)1011S=>(3)1011λ=1011ϵL(G).

  1. Класс контекстно-свободных грамматик и языков (КС). А→α, αϵ(VTUVN)*, А – один нетерминальный символ.

Пример. G2=<{0,1}, {S}, P, S>

P: S→0S0

S→1S1

S→λ

S=>(1)0S0=>(2)01S10=>(2)011S110=>(3)011110

Порождается множество слов четной длины и симметричных относительно середины.

Замечание: класс 1 – подкласс 2.

  1. Класс контекстно-зависимых грамматик и языков (линейно-ограниченных, непосредственно-составляющих, неукорачивающие). (КЗ)

α→β |α|≤|β| (длины), α содержит хотя бы один символ из VN. Применение правила не укорачивает длину слова.

Пример. G3=<{0,1}, {S}, P, S>

P: S→0S0

S→1S1

1S→1S1

1S→11 (в середине обязательно будет 111)

  1. Класс грамматик общего вида (рекурсивно-перечислимы). (РП)

α→β; α,βϵ(VTUVN)*, α содержит хотя бы один символ из VN.

ПрЛ КС КЗ РП

Существует два способа описания языков:

-с помощью грамматик

-с помощью автоматов.

ПрЛ – конечные автоматы

КС – автоматы с магазинной памятью (стек)

КЗ – Машина Тьюринга с линейной ограниченной памятью

РП – Машина Тьюринга.

3. Понятия конечного автомата и конечно-автоматного языка. Примеры конечно-автоматных языков.

Недетерминированный конечный автомат – это система M=<Q,A,q0,δ,F>, где

Q - конечное множество состояний автомата,

A – конечный алфавит,

q0 ϵ Q – начальное состояние автомата,

δ: Q x A->2Q – функция переходов конечного автомата,

F c Q – множество заключительных («хороших») состояний автомата.

Автомат М называется детерминированным, если множество δ(q,a) содержит не более одного состояния для любых q ϵ Q и a ϵ A. Если δ(q,a) всегда содержит точно одно состояние, то автомат М называется полностью определенным.

Конфигурация автомата М – это пара (q,w) ϵ Q x A*. Конфигурация (q0,w) называется начальной, а пара (q,λ), где q ϵ F, называется заключительной (или допускающей).

Определим на множестве всех конфигураций конечного автомата М бинарное отношение |― (такт работы автомата М) следующим образом. Если δ(q,a) содержит q, тогда (q,aw) |―( q,w) для всех w ϵ A*.

Запись С|―0С’ означает, что С=С’, а С0|―kСk (для k≥1) – что существуют такие конфигурации С1,…,Сk-1, что Сi|―Сi+1 для всех 0≤ i ≤ k.

Бинарное отношение |―* определяется как рефлексивное и транзитивное замыкание отношения |―, т.е. С|―*С’ означает, что С|―kС’ для некоторого k≥0.

Будем говорить, что автомат М распознает (или допускает) слово w, если (q0,w) |―*(q,λ) для некоторого q0 ϵ F.

Язык, определяемый ( или распознаваемый, или допускаемый) автоматом М ( обозначается L(M)), - это множество входных цепочек, допускаемых конечным автоматом М, т.е. L(M) = { w|w ϵ A* и (q0,w) |―*(q,λ) для некоторого q ϵ F}.

Язык L называется конечно-автоматным, если для него можно построить распознающий конечный автомат.

Для описание конечных автоматов существует два основных способа задания: таблица переходов и диаграмма переходов.

Таблица переходов недетерминированного конечного автомата представляет собой обычное табличное представление функции переходов δ, которая двум своим аргументам q ϵ Q и а ϵ А ставит в соответствие δ(q,a). Строки таблицы соответствуют состояниям, а столбцы – входным символам. На пересечении строки, соответствующей состоянию q ϵ Q, и столбца, соответствующего входному символу а ϵ А, находится подмножество δ(q,a). Если δ(q,a) =Ø, то будем говорить, что δ(q,a) не определено. Заметим, что в случае детерминированного конечного автомата δ(q,a) представляет собой всегда одноэлементное подмножество, поэтому договоримся в этом случае вместо δ(q,a)={p} писать просто δ(q,a)=p (без фигурных скобок).

Диаграмма переходов конечного автомата есть ориентированный граф, каждая вершина которого соответствует некоторому состоянию q ϵ Q, причем вершины, соответствующие заключительным состояниям (состояниям из F), выделяются двойным кружком. Пусть δ(q,a)={p1,…,pk} для некоторого q ϵ Q и входного символа а ϵ А, тогда диаграмма переходов должна содержать дуги, помеченные символом а, из вершины q в каждую из вершин p1,…,pk.

Построить пример автомата, заданного обоими способами. У таблицы 2 столбца – состояния и вход. В строках названия вершин и куда переходим по дугам.

Пример конечно-автоматного языка.

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