- •1.Операции над словами и языками. Понятие грамматики и грамматического вывода.
- •2.Иерархия Хомского формальных языков.
- •3. Понятия конечного автомата и конечно-автоматного языка. Примеры конечно-автоматных языков.
- •4.Детерминированные и недетерминированные конечные автоматы. Алгоритм детерминизации недетерминированного конечного автомата.
- •5. Алгоритм минимизация конечного автомата.
- •7. Лемма Огдена (о разрастании) для конечно-автоматных языков. Пример языка, не являющегося конечно-автоматным.
- •8. Правила построения регулярных выражений. Теорема Клини о совпадении классов конечно-автоматных и регулярных языков.
- •9. Алгоритм анализа конечного автомата.
- •10. Алгоритм синтеза конечного автомата.
- •11. Свойства замкнутости праволинейных языков относительно теоретико-множественных операций, конкатенации и итерации.
- •12. Решение систем линейных уравнений с регулярными коэффициентами. Описание праволинейного языка с помощью системы линейных уравнений с регулярными коэффициентами.
- •13. Теорема о совпадении классов праволинейных, конечно-автоматных и регулярных языков.
- •14. Определение контекстно-свободной грамматики. Контекстно-свободный грамматический вывод, левый и прявый выводы. Примеры кс-языков. Деревья вывода.
- •15. Приведенная форма кс-грамматики, алгоритм преобразования кс-грамматики к приведенной форме.
- •16. Лемма Огдена для кс-языков. Пример языка, не являющегося контекстно-свободным.
- •21. Соотношение между кс-языками и языками, допускаемыми мпа. Построение по кс-грамматике мп-автомата.
- •22. Понятие мп-преобразователя. Нисходящие и восходящие распознаватели.
- •23. Построение мп-преобразователя, реализующего левый разбор
2.Иерархия Хомского формальных языков.
Иерархия Хомского — классификация формальных языков и формальных грамматик, согласно которой они делятся на 4 типа по их условной сложности.
Согласно Хомскому, формальные грамматики делятся на четыре типа. Для отнесения грамматики к тому или иному типу необходимо соответствие всех её правил некоторым схемам.
Язык, порождаемый грамматикой.
L(G)={γ|S=>*γ, γєVT*}.
В зависимости от накладываемых ограничений на правило Р, выделяют 4 класса:
Класс праволинейных грамматик и языков (ПрЛ).
Каждое правило из Р имеет вид: А→хВ, Ає 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).
Класс контекстно-свободных грамматик и языков (КС). А→α, αϵ(VTUVN)*, А – один нетерминальный символ.
Пример. G2=<{0,1}, {S}, P, S>
P: S→0S0
S→1S1
S→λ
S=>(1)0S0=>(2)01S10=>(2)011S110=>(3)011110
Порождается множество слов четной длины и симметричных относительно середины.
Замечание: класс 1 – подкласс 2.
Класс контекстно-зависимых грамматик и языков (линейно-ограниченных, непосредственно-составляющих, неукорачивающие). (КЗ)
α→β |α|≤|β| (длины), α содержит хотя бы один символ из VN. Применение правила не укорачивает длину слова.
Пример. G3=<{0,1}, {S}, P, S>
P: S→0S0
S→1S1
1S→1S1
1S→11 (в середине обязательно будет 111)
Класс грамматик общего вида (рекурсивно-перечислимы). (РП)
α→β; α,βϵ(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 столбца – состояния и вход. В строках названия вершин и куда переходим по дугам.
Пример конечно-автоматного языка.
