Кс-грамматики и мп-автоматы

Синтаксический анализ

КС-грамматики и МП-автоматы

Пусть G = (N, T, P, S) - контекстно-свободная грамматика. Введем несколько важных понятий и определений.

Вывод, в котором в любой сентенциальной форме на каждом шаге делается подстановка самого левого нетерминала, называется левосторонним. Если S кс-грамматики и мп-автоматы - student2.ru *u в процессе левостороннего вывода, то u - левая сентенциальная форма. Аналогично определяется правосторонний вывод. Будем обозначать шаги левого (правого) вывода посредством кс-грамматики и мп-автоматы - student2.ru l ( кс-грамматики и мп-автоматы - student2.ru r).

Упорядоченным графом называется пара (V, E), где V есть множество вершин, а E - множество линейно упорядоченных списков дуг, каждый элемент которого имеет вид ((v, v1), (v, v2), ..., (v, vn)). Этот элемент указывает, что из вершины v выходят n дуг, причем первой из них считается дуга, входящая в вершину v1, второй - дуга, входящая в вершину v2, и т.д.

Упорядоченным помеченным деревом называется упорядоченный граф (V, E), основой которого является дерево и для которого определена функция f : V кс-грамматики и мп-автоматы - student2.ru F (функция разметки) для некоторого множества F.

Упорядоченное помеченное дерево D называется деревом вывода (или деревом разбора) цепочки w в КС-грамматике G = (N, T, P, S), если выполнены следующие условия:

  • корень дерева D помечен S;
  • каждый лист помечен либо a кс-грамматики и мп-автоматы - student2.ru T, либо e;
  • каждая внутренняя вершина помечена нетерминалом A кс-грамматики и мп-автоматы - student2.ru N;
  • если X - нетерминал, которым помечена внутренняя вершина и X1, ..., Xn - метки ее прямых потомков в указанном порядке, то X кс-грамматики и мп-автоматы - student2.ru X1...Xk - правило из множества P;
  • Цепочка, составленная из выписанных слева направо меток листьев, равна w.

Грамматика G называется неоднозначной, если существует цепочка w, для которой имеется два или более различных деревьев вывода в G.

Грамматика G называется леворекурсивной, если в ней имеется нетерминал A такой, что существует вывод A кс-грамматики и мп-автоматы - student2.ru +A кс-грамматики и мп-автоматы - student2.ru для некоторой цепочки кс-грамматики и мп-автоматы - student2.ru .

Автомат с магазинной памятью (МП-автомат) - это семерка M = (Q, T, кс-грамматики и мп-автоматы - student2.ru , D, q0, Z0, F), где

  • Q - конечное множество состояний, представляющих всевозможные состояния управляющего устройства;
  • T - конечный входной алфавит;
  • кс-грамматики и мп-автоматы - student2.ru - конечный алфавит магазинных символов;
  • D - отображение множества QЧ(T кс-грамматики и мп-автоматы - student2.ru {e})Ч кс-грамматики и мп-автоматы - student2.ru в множество конечных подмножеств QЧ кс-грамматики и мп-автоматы - student2.ru *, называемое функцией переходов;
  • q0 кс-грамматики и мп-автоматы - student2.ru Q - начальное состояние управляющего устройства;
  • Z0 кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru - символ, находящийся в магазине в начальный момент (начальный символ магазина);
  • F кс-грамматики и мп-автоматы - student2.ru Q - множество заключительных состояний.

Конфигурацией МП-автомата называется тройка (q, w, u), где

  • q кс-грамматики и мп-автоматы - student2.ru Q - текущее состояние управляющего устройства;
  • w кс-грамматики и мп-автоматы - student2.ru T* - непрочитанная часть входной цепочки; первый символ цепочки w находится под входной головкой; если w = e, то считается, что вся входная лента прочитана;
  • u кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru * - содержимое магазина; самый левый символ цепочки u считается верхним символом магазина; если u = e, то магазин считается пустым.

Такт работы МП-автомата M будем представлять в виде бинарного отношения кс-грамматики и мп-автоматы - student2.ru , определенного на конфигурациях. Будем писать

кс-грамматики и мп-автоматы - student2.ru

если множество D(q, a, Z) содержит (p, v), где q, p кс-грамматики и мп-автоматы - student2.ru Q, a кс-грамматики и мп-автоматы - student2.ru T кс-грамматики и мп-автоматы - student2.ru {e}, w кс-грамматики и мп-автоматы - student2.ru T*, Z кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru и u, v кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru *.

Начальной конфигурацией МП-автомата M называется конфигурация вида (q0, w, Z0), где w кс-грамматики и мп-автоматы - student2.ru T*, т.е. управляющее устройство находится в начальном состоянии, входная лента содержит цепочку, которую нужно проанализировать, а в магазине находится только начальный символ Z0.

Заключительная конфигурация - это конфигурация вида (q, e, u), где q кс-грамматики и мп-автоматы - student2.ru F, u кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru *, т.е. управляющее устройство находится в одном из заключительных состояний, а входная цепочка целиком прочитана.

Введем транзитивное и рефлексивно-транзитивное замыкание отношения кс-грамматики и мп-автоматы - student2.ru , а также его степень k кс-грамматики и мп-автоматы - student2.ru 0 (обозначаемые кс-грамматики и мп-автоматы - student2.ru +, кс-грамматики и мп-автоматы - student2.ru * и кс-грамматики и мп-автоматы - student2.ru k соответственно).

Говорят, что цепочка w допускается МП-автоматом M, если (q0, w, Z0) кс-грамматики и мп-автоматы - student2.ru *(q, e, u) для некоторых q кс-грамматики и мп-автоматы - student2.ru F и u кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru *.

Язык, допускаемый (распознаваемый, определяемый) автоматом M (обозначается L(M)) - это множество всех цепочек, допускаемых автоматом M.

Пример 4.1. Рассмотрим МП-автомат

кс-грамматики и мп-автоматы - student2.ru

у которого функция переходов D содержит следующие элементы:

D(q0, a, Z) = {(q0, aZ)},

D(q0, b, Z) = {(q0, bZ)},

D(q0, a, a) = {(q0, aa), {q1, e)},

D(q0, a, b) = {(q0, ab)},

D(q0, b, a) = {(q0, ba)},

D(q0, b, b) = {(q0, bb), (q1, e)},

D(q1, a, a) = {(q1, e)},

D(q1, b, b) = {(q1, e)},

D(q1, e, Z) = {(q2, e)}.

Нетрудно показать, что L(M) = {wwR|w кс-грамматики и мп-автоматы - student2.ru {a, b}+}, где wR обозначает обращение («переворачивание») цепочки w.

Иногда допустимость определяют несколько иначе: цепочка w допускается МП-автоматом M, если (q0, w, Z0) кс-грамматики и мп-автоматы - student2.ru *(q, e, e) для некоторого q кс-грамматики и мп-автоматы - student2.ru Q. В таком случае говорят, что автомат допускает цепочку опустошением магазина. Эти определения эквивалентны, ибо справедлива

Теорема 4.1. Язык допускается магазинным автоматом тогда и только тогда, когда он допускается (некоторым другим автоматом) опустошением магазина.

Доказательство. Пусть L = L(M) для некоторого МП-автомата M = (Q, T, кс-грамматики и мп-автоматы - student2.ru , D, q0, Z0, F). Построим новый МП-автомат M', допускающий тот же язык опустошением магазина.

Пусть M' = (Q кс-грамматики и мп-автоматы - student2.ru {q0', qe}, T, кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru {Z0'}, D', q0', Z0', кс-грамматики и мп-автоматы - student2.ru ), где функция переходов D' определена следующим образом:

  • Если (r, u) кс-грамматики и мп-автоматы - student2.ru D(q, a, Z), то (r, u) кс-грамматики и мп-автоматы - student2.ru D'(q, a, Z) для всех q кс-грамматики и мп-автоматы - student2.ru Q, a кс-грамматики и мп-автоматы - student2.ru T кс-грамматики и мп-автоматы - student2.ru {e} и Z кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru ;
  • D'(q0', e, Z0') = {(q0, Z0Z0')};
  • Для всех q кс-грамматики и мп-автоматы - student2.ru F и Z кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru {Z0'} множество D'(q, e, Z) содержит (qe, e);
  • D'(qe, e, Z) = {(qe, e)} для всех Z кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru {Z0'}.

Автомат сначала переходит в конфигурацию (q0, w, Z0Z0') в соответствии с определением D' в п.2, затем в (q, e, Y 1...Y kZ0'), q кс-грамматики и мп-автоматы - student2.ru F в соответствии с п.1, затем в (qe, e, Y 1...Y kZ0'), q кс-грамматики и мп-автоматы - student2.ru F в соответствии с п.3, затем в (qe, e, e) в соответствии с п.4. Нетрудно показать по индукции, что (q0, w, Z0) кс-грамматики и мп-автоматы - student2.ru +(q, e, u) (где q кс-грамматики и мп-автоматы - student2.ru F) выполняется для автомата M тогда и только тогда, когда (q0', w, Z0') кс-грамматики и мп-автоматы - student2.ru +(qe, e, e) выполняется для автомата M'. Поэтому L(M) = L', где L' - язык, допускаемый автоматом M' опустошением магазина.

Обратно, пусть M = (Q, T, кс-грамматики и мп-автоматы - student2.ru , D, q0, Z0, кс-грамматики и мп-автоматы - student2.ru ) - МП-автомат, допускающий опустошением магазина язык L. Построим автомат M', допускающий тот же язык по заключительному состоянию.

Пусть M' = (Q кс-грамматики и мп-автоматы - student2.ru {q0', qf}, T, кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru {Z0}, D', q0', Z0', {qf}), где D' определяется следующим образом:

  • D'(q0', e, Z0') = {(q0, Z0Z0')} - переход в «режим M»;
  • Для каждого q кс-грамматики и мп-автоматы - student2.ru Q, a кс-грамматики и мп-автоматы - student2.ru T кс-грамматики и мп-автоматы - student2.ru {e}, и Z кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru определим D'(q, a, Z) = D(q, a, Z) - работа в «режиме M»;
  • Для всех q кс-грамматики и мп-автоматы - student2.ru Q, (qf, e) кс-грамматики и мп-автоматы - student2.ru D'(q, e, Z0') - переход в заключительное состояние.

Нетрудно показать по индукции, что L = L(M'). __

Одним из важнейших результатов теории контекстно-свободных языков является доказательство эквивалентности МП-автоматов и КС-грамматик.

Теорема 4.2. Язык является контекстно-свободным тогда и только тогда, когда он допускается магазинным автоматом.

Доказательство. Пусть G = (N, T, P, S) - КС-грамматика. Построим МП-автомат M, допускающий язык L(G) опустошением магазина.

Пусть M = ({q}, T, N кс-грамматики и мп-автоматы - student2.ru T, D, q, S, кс-грамматики и мп-автоматы - student2.ru ), где D определяется следующим образом:

  • Если A кс-грамматики и мп-автоматы - student2.ru u кс-грамматики и мп-автоматы - student2.ru P, то (q, u) кс-грамматики и мп-автоматы - student2.ru D(q, e, A);
  • D(q, a, a) = {(q, e)} для всех a кс-грамматики и мп-автоматы - student2.ru T.

Фактически, этот МП-автомат в точности моделирует все возможные выводы в грамматике G. Нетрудно показать по индукции, что для любой цепочки w кс-грамматики и мп-автоматы - student2.ru T* вывод S кс-грамматики и мп-автоматы - student2.ru +w в грамматике G существует тогда и только тогда, когда существует последовательность тактов (q, w, S) кс-грамматики и мп-автоматы - student2.ru +(q, e, e) автомата M.

Обратно, пусть M = (Q, T, кс-грамматики и мп-автоматы - student2.ru , D, q0, Z0, кс-грамматики и мп-автоматы - student2.ru ) - МП-автомат, допускающий опустошением магазина язык L. Построим грамматику G, порождающую язык L.

Пусть G = ({ [qZr] | q, r кс-грамматики и мп-автоматы - student2.ru Q, Z кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru } кс-грамматики и мп-автоматы - student2.ru {S}, T, P, S), где P состоит из правил следующего вида:

  • Если (r, X1...Xk) кс-грамматики и мп-автоматы - student2.ru D(q, a, Z), k кс-грамматики и мп-автоматы - student2.ru 1, то

кс-грамматики и мп-автоматы - student2.ru

для любого набора s1, s2, ..., sk состояний из Q;

  • Если (r, e) кс-грамматики и мп-автоматы - student2.ru D(q, a, Z), то [qZr] кс-грамматики и мп-автоматы - student2.ru a кс-грамматики и мп-автоматы - student2.ru P, a кс-грамматики и мп-автоматы - student2.ru T кс-грамматики и мп-автоматы - student2.ru {e};
  • S кс-грамматики и мп-автоматы - student2.ru [q0Z0q] кс-грамматики и мп-автоматы - student2.ru P для всех q кс-грамматики и мп-автоматы - student2.ru Q.

Нетерминалы и правила вывода грамматики определены так, что работе автомата M при обработке цепочки w соответствует левосторонний вывод w в грамматике G.

Индукцией по числу шагов вывода в G или числу тактов M нетрудно показать, что (q, w, A) кс-грамматики и мп-автоматы - student2.ru +(p, e, e) тогда и только тогда, когда [qAp] кс-грамматики и мп-автоматы - student2.ru +w.

Тогда, если w кс-грамматики и мп-автоматы - student2.ru L(G), то S кс-грамматики и мп-автоматы - student2.ru [q0Z0q] кс-грамматики и мп-автоматы - student2.ru +w для некоторого q кс-грамматики и мп-автоматы - student2.ru Q. Следовательно, (q0, w, Z0) кс-грамматики и мп-автоматы - student2.ru +(q, e, e) и поэтому w кс-грамматики и мп-автоматы - student2.ru L. Аналогично, если w кс-грамматики и мп-автоматы - student2.ru L, то (q0, w, Z0) кс-грамматики и мп-автоматы - student2.ru +(q, e, e). Значит, S кс-грамматики и мп-автоматы - student2.ru [q0Z0q] кс-грамматики и мп-автоматы - student2.ru +w, и поэтому w кс-грамматики и мп-автоматы - student2.ru L(G). __

МП-автомат M = (Q, T, кс-грамматики и мп-автоматы - student2.ru , D, q0, Z0, F) называется детерминированным (ДМП-автоматом), если выполнены следующие два условия:

  • Множество D(q, a, Z) содержит не более одного элемента для любых q кс-грамматики и мп-автоматы - student2.ru Q, a кс-грамматики и мп-автоматы - student2.ru T кс-грамматики и мп-автоматы - student2.ru {e}, Z кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru ;
  • Если D(q, e, Z) кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru , то D(q, a, Z) = кс-грамматики и мп-автоматы - student2.ru для всех a кс-грамматики и мп-автоматы - student2.ru T.

Язык, допускаемый ДМП-автоматом, называется детерминированным КС-языком.

Так как функция переходов ДМП-автомата содержит не более одного элемента для любой тройки аргументов, мы будем пользоваться записью D(q, a, Z) = (p, u) для обозначения D(q, a, Z) = {(p, u)}.

Пример 4.2. Рассмотрим ДМП-автомат

кс-грамматики и мп-автоматы - student2.ru

у которого функция переходов определяется следующим образом:

D(q0, X, Y ) = (q0, XY ), X кс-грамматики и мп-автоматы - student2.ru {a, b}, Y кс-грамматики и мп-автоматы - student2.ru {Z, a, b},

D(q0, c, Y ) = (q1, Y ), Y кс-грамматики и мп-автоматы - student2.ru {a, b},

D(q1, X, X) = (q1, e), X кс-грамматики и мп-автоматы - student2.ru {a, b},

D(q1, e, Z) = (q2, e).

Нетрудно показать, что этот детерминированный МП-автомат допускает язык L = {wcwR|w кс-грамматики и мп-автоматы - student2.ru {a, b}+}.

К сожалению, ДМП-автоматы имеют меньшую распознавательную способность, чем МП-автоматы. Доказано, в частности, что существуют КС-языки, не являющиеся детерминированными КС-языками (таковым, например, является язык из примера 4.1).

Рассмотрим еще одну важную разновидность МП-автомата.

Расширенным автоматом с магазинной памятью назовем семерку M = (Q, T, кс-грамматики и мп-автоматы - student2.ru , D, q0, Z0, F), где смысл всех символов тот же, что и для обычного МП-автомата, кроме D, представляющего собой отображение конечного подмножества множества QЧ(T кс-грамматики и мп-автоматы - student2.ru {e})Ч кс-грамматики и мп-автоматы - student2.ru * во множество конечных подмножеств множества QЧ кс-грамматики и мп-автоматы - student2.ru *. Все остальные определения (конфигурации, такта, допустимости) для расширенного МП-автомата остаются такими же, как для обычного.

Теорема 4.3. Пусть M = (Q, T, кс-грамматики и мп-автоматы - student2.ru , D, q0, Z0, F) - расширенный МП-автомат. Тогда существует такой МП-автомат M', что L(M') = L(M).

Расширенный МП-автомат M = (Q, T, кс-грамматики и мп-автоматы - student2.ru , D, q0, Z0, F) называется детерминированным, если выполнены следующие условия:

  • Множество D(q, a, u) содержит не более одного элемента для любых q кс-грамматики и мп-автоматы - student2.ru Q, a кс-грамматики и мп-автоматы - student2.ru T кс-грамматики и мп-автоматы - student2.ru {e}, Z кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru *;
  • Если D(q, a, u) кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru , D(q, a, v) кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru и u кс-грамматики и мп-автоматы - student2.ru v, то не существует цепочки x такой, что u = vx или v = ux;
  • Если D(q, a, u) кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru , D(q, e, v) кс-грамматики и мп-автоматы - student2.ru кс-грамматики и мп-автоматы - student2.ru , то не существует цепочки x такой, что u = vx или v = ux.

Теорема 4.4. Пусть M = (Q, T, кс-грамматики и мп-автоматы - student2.ru , D, q0, Z0, F) - расширенный ДМП-автомат. Тогда существует такой ДМП-автомат M', что L(M') = L(M).

ДМП-автомат и расширенный ДМП-автомат лежат в основе рассматриваемых далее в этой главе, соответственно, LL и LR-анализаторов.

Наши рекомендации