Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СП. Краткий Теоретический Курс.doc
Скачиваний:
6
Добавлен:
26.09.2019
Размер:
99.84 Кб
Скачать
  1. Соотношения между типами грамматик

  • Любая регулярная грамматика = КС

  • Любая КС = КЗ, неукорачивающая

  • Любая КЗ, любая неукорачивающая = типа 0

  • Любая регулярная = УКС

  • Любая КС = УКС

  • УКС с эпсилон не явл. типа 1.

  1. Соотношения между типами языков

Язык типа К, если его можно описать грамматикой типа К и нельзя грамматикой типа К + 1

  • Любой регулярный язык = КС язык, но КС-языки не явл. регулярными

  • Любой КС = язык типа 1, но есть типа 1 не КС

  • Любой язык типа 1 = язык типа 0

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

Дерево вывода: помеченное упорядоченное дерево, явл. деревом разбора в грамматике G = (VT, VN, P, S), если:

  • Корень дерева помечен S, листья – символы из VT, либо эпсилон (для укорачивающих грамматик), все вершины – VN

  • Если вершины помечены A из VN и пометки при непосредственных потомках, выписанные слева направо, образуют цепочку a1, …, an, где ai из (VT U VN), то A -> a1…an из P – правило вывода грамматики

  • Если вершины помечены A из VN и при непосредственных потомках, помеченных эпсилон, то этот потомок единственный.

Грамматика G является неоднозначной, если существует w из L(G), для которой существует более одного дерева вывода.

  1. Определение недостижимых и бесполезных символов, определение приведенной грамматики

Символ x из (VT U VN) называется недостижимым в грамматике G = (VT, VN, P, S), если он не появляется ни в одной сентенциальной форме этой грамматики

Алгоритм удаления недостижимых символов:

  1. V0 = {S}; i = 1

  2. Vi = {x|x из (VT U VN), в Р есть A -> axb и A изVi-1, a, b из (VT U VN)* U Vi-1

  3. если Vi != Vi-1, то i = i + 1 и переходим к шагу 2, иначе VN’ = Vi VN; VT’ = Vi VT; P’ состоит из правил множества P, содержащих только символы Vi; G’ = (VT’, VN’, P’, S).

Символ А из VN называется бесплодным в грамматике G = (VT, VN, P, S), если множество {a из VT* | A -> a} пусто

Алгоритм удаления бесплодных символов:

Рекурсивно строим множества N0, N1, …

  1. N0 = 0, i = 1

  2. Ni = {A| (A -> a) из P и а из (Ni-1 U VT)*} U Ni-1

  3. Если Ni != Ni-1, то i = i + 1 и переходим к шагу 2, иначе VN’ = Ni, P’ состоит из правил множества P, содержащих только символы из VN’ U VT; G’ = (VT, VN’, P’, S)

Грамматика называется приведенной, если в ней нет недостижимых и бесплодных символов.

  1. Определение детерминированного конечного автомата (ка)

Конечным автоматом называют пятерку следующего вида: M(Q, V, P, R, F), где:

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

V – конечное множество допустимых входных символов

P – функция переходов, отображающая VxQ в множество подмножеств Q: U(Q), то есть P(a, q) = U, a из V, q из Q, U – подмножество Q

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

F – непустое множество конечных состояний автомата F непустое подмножество Q

Конечный автомат называют ДКА, если в каждом из его состояний для любого входного символа функция перехода содержит не более одного состояния: для любого а из V и q из Q: либо P(a, q) = {r}, r из Q, либо P(a, q) = пусто.