Синтаксический анализ
Теорема 4.1. Язык допускается МП-автоматом тогда и только тогда, когда он допускается (некоторым другим автоматом) опустошением магазина.
Доказательство. Пусть L = L(M) для некоторого МП- автомата . Построим новый МП- автомат M', допускающий тот же язык опустошением магазина.
Пусть где функция переходов D' определена следующим образом:
- Если , то для всех и (моделирование М ),
- (начало работы),
- Для всех и множество D'(q, e, Z) содержит (qe, e) (переход в состояние сокращения магазина без продвижения),
- D'(qe, e, Z) = {(qe, e)} для всех , (сокращение магазина).
Автомат сначала переходит в конфигурацию соответственно определению D' в п.2, затем в ,
соответственно п.1, затем в соответственно п.3, затем в (qe, e, e) соответственно п.4. Нетрудно показать по индукции, что (где ) выполняется для автомата M тогда и только тогда, когда выполняется для автомата M'. Поэтому L(M) = L', где L' - язык, допускаемый автоматом M' опустошением магазина.
Обратно, пусть - МП - автомат, допускающий опустошением магазина язык L. Построим автомат M', допускающий тот же язык по заключительному состоянию.
Пусть , где D' определяется следующим образом:
- - переход в "режим M ",
- Для каждого определим - работа в "режиме M " ,
- Для всех - переход в заключительное состояние.
Нетрудно показать по индукции, что L = L(M'). Одним из важнейших результатов теории контекстно-свободных языков является доказательство эквивалентности МП-автоматов и КС-грамматик.
Теорема 4.2. Язык является контекстно-свободным тогда и только тогда, когда он допускается МП-авто- матом.
Доказательство. Пусть G = (N, T, P, S) - КС-граммати- ка. Построим МП-автомат, допускающий язык L(G) опустошением магазина.
Пусть , где D определяется следующим образом:
- Если , то ,
- D(q, a, a) = {(q, e)} для всех .
Фактически, этот МП-автомат в точности моделирует все возможные выводы в грамматике G. Нетрудно показать по индукции, что для любой цепочки вывод S =>+w в грамматике G существует тогда и только тогда, когда существует последовательность тактов автомата M.
Наоборот, пусть дан - МП- автомат, допускающий опустошением магазина язык L.
Построим грамматику G, порождающую язык L.
Пусть , где P состоит из правил следующего вида:
- для всех .
- Если ,
- Если , то
Нетерминалы и правила вывода грамматики определены так, что работе автомата M при обработке цепочки w соответствует левосторонний вывод w в грамматике G.
Индукцией по числу шагов вывода в G или числу тактов M нетрудно показать, что тогда и только тогда, когда [qAp] =>+ w.
Тогда, если , то S => [q0Z0q] =>+ w для некоторого . Следовательно, и поэтому . Аналогично, если , то . Значит, S =>[q0Z0q] =>+ w, и поэтому .
МП-автомат называется детерминированным (ДМП-автоматом), если выполнены два следующих условия:
(1) Множество D(q, a, Z) содержит не более одного элемента для любых ;
(2) Если , то для всех .
Допускаемый ДМП-автоматом язык называется детерминированным КС-языком.
Так как функция переходов ДМП-автомата содержит не более одного элемента для любой тройки аргументов, мы будем пользоваться записью D(q, a, Z) = (p, u) для обозначения D(q, a, Z) = {(p, u)}.
Пример 4.2. Рассмотрим ДМП-автомат
M = ({q0, q1, q2}, {a, b, c}, {Z, a, b}, D, q0, Z, {q2}),
функция переходов которого определяется следующим образом:
Нетрудно показать, что этот детерминированный МП-автомат допускает язык .
К сожалению, ДМП-автоматы имеют меньшую распознавательную способность, чем МП-автоматы. Доказано, в частности, что существуют КС-языки, не являющиеся детерминированными КС-языками (таковым, например, является язык из примера 4.1).
Рассмотрим еще один важный вид МП-автомата.
Расширенным автоматом с магазинной памятью назовем семерку , где смысл всех символов тот же, что и для обычного МП-автомата, кроме D, представляющего собой отображение конечного подмножества множества во множество конечных подмножеств множества . Все остальные определения (конфигурации, такта, допустимости) для расширенного МП-автомата остаются такими же, как для обычного.