Совпадение множества языков МП-автоматов и контекстно-свободных языков — различия между версиями
Bochkarev (обсуждение | вклад) (→Корректность построения) |
Bochkarev (обсуждение | вклад) (→Корректность построения) |
||
Строка 42: | Строка 42: | ||
Докажем, что если <tex> (q,w,X) \vdash^* (p,\epsilon,\epsilon)</tex>, то <tex> [q,X,p] \Rightarrow^* w </tex>. | Докажем, что если <tex> (q,w,X) \vdash^* (p,\epsilon,\epsilon)</tex>, то <tex> [q,X,p] \Rightarrow^* w </tex>. | ||
*База. Пара <tex> (p,\epsilon) </tex> должна быть в <tex> \delta(q,w,X) </tex> и <tex> w </tex> есть одиночный символ, или <tex> \epsilon </tex>. Из построения <tex> G </tex> следует, что <tex> [qXp] \rightarrow w </tex> является продукцией, поэтому <tex> [qXp] \Rightarrow w </tex>. | *База. Пара <tex> (p,\epsilon) </tex> должна быть в <tex> \delta(q,w,X) </tex> и <tex> w </tex> есть одиночный символ, или <tex> \epsilon </tex>. Из построения <tex> G </tex> следует, что <tex> [qXp] \rightarrow w </tex> является продукцией, поэтому <tex> [qXp] \Rightarrow w </tex>. | ||
+ | *Переход. Предположим, что последовательность <tex> (q,w,X) \vdash^* (p,\epsilon,\epsilon)</tex> состоит из <tex> n </tex> переходов, и <tex> n>1 </tex>. Первый переход должен иметь вид: | ||
+ | <tex> (q,w,Z) \vdash (r_0,X,Y_1Y_2...Y_k) \vdash^* (p,\epsilon,\epsilon) </tex>, где <tex> w=aX </tex> для некоторого <tex> a </tex>, которое является либо символом из <tex> \Gamma </tex>, либо <tex> \epsilon </tex>. |
Версия 08:05, 15 января 2011
Эта статья находится в разработке!
Содержание
Эквивалентность МП-автоматов и КС-языков
Далее будут приведены конструкции для построения МП-автомата по заданной КС-грамматике, и наоборот. Также будут приведены теоремы об эквивалентности языков.
Построение МП-автомата по заданной КС-грамматике
Пусть
— КС-грамматика. Построим МП-автомат , который допускает по пустому магазину. Функция переходов будет определена по следующим правилам:- 1. — продукция — для каждой переменной .
- 2. для каждого терминала .
Пример
Преобразуем грамматику выражений в МП-автомат. Пусть дана грамматика:
Множеством входных символов является
. Эти символы, вместе с переменными , образуют магазинный алфавит. Функция переходов определена следующим образом:- a)
- b)
- c) ; ;... ; если входной символ совпадает с вершиной стека, то вершина удаляется.
Пункты a,b образованы по первому правилу построения функции переходов, пункт c по второму правилу.
Корректность построения
Пусть
, тогда имеет следующее левое порождение: . Покажем индукцией по , что :- База. Очевидно, что
- Переход. Предположим, что . Заметим, что шаг порождения включает замену некоторой переменной ее продукцией . Правило 1 построения МП-автомата позволяет на заменить на вершине стека на цепочку , а правило 2 позволяет затем сравнить любые терминалы на вершине со входными символами. В результате достигается МО .
- Также заметим, что . Таким образом , т.е допускает по пустому стеку.
Утверждение (1): |
Если МП-автомат построен по грамматике , с использованием указанной выше конструкции, то |
Очевидно из того, что мы доказали корректность построения. |
Построение КС-грамматики по МП-автомату
Наша конструкция эквивалентной грамматики использует переменные вида:
Следует отметить, что удаление может являться результатом множества переходов.
Пусть — МП-автомат. Построим , где состоит из:
- 1 Специальный стартовый символ
- 2 Все символы вида , где и — состояния из , а — магазинный символ из .
Грамматика
имеет следующие продукции:- a) продукции для всех , таким образом
- b) пусть содержит . Тогда для всех списков состояний в грамматике есть продукция .
Корректность построения
Докажем, что если
, то .- База. Пара должна быть в и есть одиночный символ, или . Из построения следует, что является продукцией, поэтому .
- Переход. Предположим, что последовательность состоит из переходов, и . Первый переход должен иметь вид:
, где для некоторого , которое является либо символом из , либо .