Лекции по теории формальных...

23
Лекции по теории формальных языков Лекция 10. Грамматики простого предшествования Александр Сергеевич Герасимов http://gas-teach.narod.ru Кафедра математических и информационных технологий Санкт-Петербургского академического университета Российской академии наук. Весенний семестр 2010/11 учебного года 15 апреля 2011 г. А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 1 / 23

Upload: others

Post on 24-Jun-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Лекции по теории формальных языковЛекция 10.

Грамматики простого предшествования

Александр Сергеевич Герасимовhttp://gas-teach.narod.ru

Кафедра математических и информационных технологийСанкт-Петербургского академического университета

Российской академии наук.Весенний семестр 2010/11 учебного года

15 апреля 2011 г.

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 1 / 23

Page 2: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

План

1 Отношения простого предшествования

2 Грамматики простого предшествования

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 2 / 23

Page 3: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

План

1 Отношения простого предшествования

2 Грамматики простого предшествования

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 3 / 23

Page 4: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Отношения простого предшествования: определение

Пусть G = (Σ, Γ, P, S) — КС-грамматика, X , Y ∈ Σ ∪ Γ.Определим отношения простого предшествования .

=, l и m:X .

= Y , если XY входит в основу некоторой r -формы;X l Y , если основа некоторой r -формы начинается с символа Y ,перед которым стоит символ X ;X m Y , если основа некоторой r -формы заканчиваетсясимволом X , после которого стоит символ Y (Y ∈ Σ ?).

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 4 / 23

Page 5: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Теорема об отношениях простого предшествования

ТеоремаПусть G = (Σ, Γ, P, S) — КС-грамматика, X , Y ∈ Σ ∪ Γ. Тогда(1) X .

= Y ⇔ существует правило вида A → αXY β;(2) X l Y ⇔ существует правило вида A → αXZβ такое, что

Z ⇒+ Y γ;(3) X m Y ⇔ Y ∈ Σ и существует правило вида A → αZ1Z2β такое,

что Z1 ⇒+ γ1X и Z2 ⇒∗ Y γ2.

Д о к а з а т е л ь с т в о. Докажем (1).Если X .

= Y , то основа некоторой формы имеет вид αXY β ипотому существует правило вида A → αXY β.Если существует правило вида A → αXY β, то оно применяется внекотором выводе из S некоторой цепочки w ∈ Σ∗:

S ⇒∗ ξAu ⇒ ξαXY βu ⇒∗ w .

Основой формы ξαXY βu является αXY β, следовательно, X .= Y .

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 5 / 23

Page 6: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Теорема: продолжение доказательстваДокажем (2).

Пусть X l Y . Тогда существует форма µXY ν, основа которойначинается с Y .Рассмотрим дерево T , представляющее вывод формы µXY ν.Пусть x и y — листья этого дерева, соответствующие выделеннымвхождениям X и Y в µXY ν.Лист y является также листом самого левого куста дерева T , алист x не является листом никакого куста.Следовательно, x и y не братья.

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 6 / 23

Page 7: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Теорема: продолжение доказательства

Все левые братья узла x — листья. Тогда узел x имеет правогобрата. Обозначим ближайшего правого брата узла x через z .Узел z является внутренним; пусть он помечен нетерминалом Z .Существует правило вида A → αXZβ.Поскольку грамматика G неукорачивающая, в рассматриваемомвыводе формы µXY ν имеем Z ⇒+ η 6= ε; следовательно, η = Y γ.Обратно, пусть существует правило вида A → αXZβ и Z ⇒+ Y γ.Тогда существует вывод

S ⇒∗ ξAu ⇒ ξαXZβu ⇒∗ ξαXZvu. (?)

Пусть Y γ′ — первая цепочка в выводе Z ⇒+ Y γ, котораяначинается с Y . Значит, правая часть правила, применённогопоследним в выводе Z ⇒+ Y γ′, начинается с Y .Продолжим вывод (?):

ξαXZvu ⇒+ ξαXY γ′vu ⇒∗ w .

Основа формы ξαXY γ′vu начинается с Y , так что X l Y .А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 7 / 23

Page 8: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Теорема: продолжение доказательстваДокажем (3).

Пусть X m Y . Тогда Y ∈ Σ и существует форма µXY ν, основакоторой заканчивается символом X .Рассмотрим дерево T , представляющее вывод формы µXY ν.Пусть x и y — листья этого дерева, соответствующие выделеннымвхождениям X и Y в µXY ν.Обозначим через z ближайшего общего предка узлов x и y , ачерез z1 и z2 — сыновей узла z , потомками которых являютсяузлы x и y соответственно.

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 8 / 23

Page 9: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Теорема: продолжение доказательства

Поскольку грамматика G неукорачивающая, z1 и z2 — стоящиерядом братья.Следовательно, имеется правило вида A → αZ1Z2β, гдеA, Z1, Z2 — метки узлов z , z1, z2 соответственно.x — самый правый лист поддерева (дерева T ) с корнем z1,поэтому Z1 ⇒∗ γ1X .Аналогично Z2 ⇒∗ Y γ2.Покажем, что вместо Z1 ⇒∗ γ1X можно записать Z1 ⇒+ γ1X .

I Предположим, что z1 = x .I В случае Z2 ⇒+ Y γ2 имеем: узел z2 является братом узла x и

имеет потомка y 6= z2. Получили противоречие с тем, что узел xявляется листом куста дерева T .

I А в случае z2 = y имеем: узел y является ближайшим правымбратом узла x , что невозможно.

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 9 / 23

Page 10: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Теорема: окончание доказательства

Обратно, пусть Y ∈ Σ и существует правило вида A → αZ1Z2βтакое, что Z1 ⇒+ γ1X и Z2 ⇒∗ Y γ2.Тогда существует вывод

S ⇒∗ ξAu ⇒ ξαZ1Z2βu ⇒∗ ξαZ1Z2vu ⇒∗ ξαZ1Y γ2vu ⇒∗ ξαZ1Yv ′vu.(??)

Пусть γ′1X — первая цепочка в выводе Z1 ⇒+ γ1X , котораязаканчивается на X . Поэтому правая часть правила, применённогопоследним в выводе Z1 ⇒+ γ′1X , заканчивается на X .Продолжим вывод (??):

ξαZ1Yv ′vu ⇒+ ξαγ′1XYv ′vu ⇒∗ w .

Основа формы ξαγ′1XYv ′vu заканчивается на X , следовательно,X m Y .

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 10 / 23

Page 11: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Вычисление отношений простого предшествования

Пусть G = (Σ, Γ, P, S) — КС-грамматика, B ∈ Γ. Тогда положим

first′(B) = {X ∈ Σ ∪ Γ | ∃β (B ⇒+ Xβ)},last′(B) = {X ∈ Σ ∪ Γ | ∃β (B ⇒+ βX )}.

Упражнение. Разработать алгоритмы вычисления функций first′

и last′.X .

= Y ⇔ существует правило вида A → αXY β.X l Y ⇔существует правило вида A → αXZβ такое, что Z ⇒+ Y γ, ⇔существует Z ∈ Γ такой, что X .

= Z и Y ∈ first′(Z ).X m Y ⇔Y ∈ Σ и существует правило вида A → αZ1Z2β такое, чтоZ1 ⇒+ γ1X и Z2 ⇒∗ Y γ2, ⇔Y ∈ Σ и существуют Z1 ∈ Γ и Z2 ∈ Σ ∪ Γ такие, что Z1

.= Z2,

X ∈ last′(Z1) и либо Z2 = Y , либо Y ∈ first′(Z2).

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 11 / 23

Page 12: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Пример вычисления отношений простогопредшествования

Грамматика G1 = {S → aSSb|c}.first′(S) = {a, c}, last′(S) = {b, c}.a .

= S , S .= S , S .

= b.a .

= S даёт a l Y , где Y ∈ first′(S).S .

= S даёт l: S l Y , где Y ∈ first′(S).S .

= S даёт m: X m Y , где X ∈ last′(S), Y ∈ first′(S).S .

= b даёт X m b, где X ∈ last′(S).

S a b cS .

= l .= l

a .= l l

b m m mc m m m

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 12 / 23

Page 13: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Предложение о выполнении отношений простогопредшествования для соседних символов r -формы

ПредложениеПусть γ = αXY β — r-форма. Тогда X .

= Y , X l Y или X m Y .

Д о к а з а т е л ь с т в о.Пусть вывод формы γ представлен деревом T , в котором двасоседних листа x и y помечены X и Y соответственно.Далее, пусть z0 — ближайший общий предок x и y , z0 помечен A.Если x и y — сыновья z0, то X .

= Y .Если из x и y только x является сыном z0, то X l Y .Иначе X m Y .

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 13 / 23

Page 14: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

План

1 Отношения простого предшествования

2 Грамматики простого предшествования

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 14 / 23

Page 15: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Грамматика простого предшествования: определение

Грамматика называется обратимой, если любые два различныхправила вывода имеют различные правые части.КС-грамматика G = (Σ, Γ, P, S) называется грамматикой простогопредшествования (ПП-грамматикой), если она без циклов,обратима и для любой упорядоченной пары символов из Σ ∪ Γвыполняется не более одного отношения простогопредшествования.Пример. Грамматика G1 на слайде 12 является ПП-грамматикой.Для восходящего синтаксического анализа будем использоватьмаркер ` в начале входной строки и маркер a в конце входнойстроки.Будем считать, что ` l Y для любого символа Y , с которогоможет начинаться r -форма, и X m a для любого символа X ,которым может заканчиваться r -форма.

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 15 / 23

Page 16: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Предложение о выделении основы дляПП-грамматики

ПредложениеПусть γ — r-форма ПП-грамматики, ` γ a = X0X1 . . . XnXn+1, n > 1.Тогда основой формы γ является такая цепочка Xk . . . Xm, что m —минимальный номер, для которого выполнено Xm m Xm+1, k 6 m и

Xk−1 l Xk , Xk.= Xk+1, . . . , Xm−1

.= Xm, Xm m Xm+1.

Д о к а з а т е л ь с т в о.X0 l X1 и Xn m Xn+1, поэтому такие индексы k и m существуют.Пусть T — дерево, представляющее вывод формы γ с листьямиx1, . . . , xn, которые помечены X1, . . . , Xn соответственно.Пусть основа формы γ есть Xs . . . Xt (s 6 t).Тогда Xt m Xt+1, откуда m 6 t.Предположим, что m < t.

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 16 / 23

Page 17: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Предложение о выделении основы дляПП-грамматики: окончание доказательства

Символы Xm и Xm+1 не входят в основу Xs . . . Xt одновременно.

Xs . . .Xt Xs . . . Xt

Xk . . . XmXm+1 Xk . . . Xm

Следовательно, m < s.Самый левый куст дерева T имеет листья xs , . . . , xt , так чтолист xm не принадлежит никакому кусту дерева T .Тогда у xm есть брат — внутренний узел, значит, в T есть кустлевее самого левого куста.Полученное противоречие показывает, что m = t.Xs−1 l Xs , Xs

.= Xs+1, . . . , Xt−1

.= Xt , следовательно, k = s.

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 17 / 23

Page 18: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Алгоритм восходящего анализа для ПП-грамматикиПусть дана ПП-грамматика G = (Σ, Γ, P, S);X ◦ Y означает, что ни X .

= Y , ни X l Y , ни X m Y .Вход. Цепочка w ∈ Σ+.Выход. «ДА», если w ∈ L(G ), «НЕТ» иначе.

1. γ := ` w a; // далее считаем, что γ = X0 . . . Xn+12. пока (γ 6= ` S a) повторять3. i := 0; k := 0; m := 0;4. пока (i 6 n ∧m = 0) повторять5. если (Xi ◦ Xi+1) возвратить «НЕТ»;6. иначе если (Xi l Xi+1) k := i + 1;7. иначе если (Xi m Xi+1) m := i ;8. i := i + 1;9. если (m = 0) возвратить «НЕТ»;

10. иначе если (@A : (A → Xk . . . Xm) ∈ P) возвратить «НЕТ»;11. иначе γ := X0 . . . Xk−1AXm+1 . . . Xn+1; перейти на 2;12. возвратить «ДА»

Упражнение. Оптимизировать поиск основы.А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 18 / 23

Page 19: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Пример восходящего анализа для ПП-грамматикиГрамматика G1 = {S → aSSb|c}, цепочка w = acaccbb.

S a b c aS .

= l .= l m

a .= l l

b m m m mc m m m m` l l l

` l a l c m a l c m c m b m b m a` l a .

= S l a l c m c m b m b m a` l a .

= S l a .= S l c m b m b m a

` l a .= S l a .

= S .= S .

= b m b m a` l a .

= S .= S .

= b m a` l S m a

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 19 / 23

Page 20: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Предложение о корректности алгоритмавосходящего анализа для ПП-грамматики

ПредложениеАлгоритм на слайде 18 останавливается для любой входной цепочкиw ∈ Σ+, и если он возвращает «ДА», то w ∈ L(G ), а если «НЕТ», тоw /∈ L(G ).

Д о к а з а т е л ь с т в о.Итерация внешнего цикла этого алгоритма заканчивается либоответом «НЕТ», либо свёрткой.Длина цепочки γ может не уменьшаться не более чем |Γ| свёртокподряд, поскольку грамматика G неукорачивающая и без циклов.Следовательно, после конечного числа свёрток γ будет иметь вид` A a. Тогда алгоритм завершается, сделав ещё не более однойсвёртки.

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 20 / 23

Page 21: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Предложение о корректности алгоритмавосходящего анализа для ПП-грамматики:окончание доказательства

Если алгоритм возвращает «ДА», то цепочка w свёрнута ваксиому S , т. е. найден вывод цепочки w из S ; значит, w ∈ L(G ).Если алгоритм возвращает «НЕТ», то γ не является r -формой.В силу обратимости грамматики G все свёртки определяютсяоднозначно. Тогда w /∈ L(G ), поскольку γ не является r -формой.

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 21 / 23

Page 22: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Предложение об оценке числа шаговалгоритма типа «перенос-свёртка»восходящего анализа для ПП-грамматики

Алгоритм восходящего анализа для ПП-грамматики легко можнопредставить как алгоритм типа «перенос-свёртка».

ПредложениеЧисло шагов (переносов и свёрток) такого алгоритма линейно зависитот длины входной цепочки.

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 22 / 23

Page 23: Лекции по теории формальных языковgas-teach.narod.ru/au/tfl/tfl10.pdfТеорема: продолжение доказательства ... Лекции

Литература

Основная литератураЗамятин А. П., Шур А. М. Языки, грамматики, распознаватели:Учебное пособие. Екатеринбург : Изд-во Урал. ун-та, 2007(электронный вариант книги — на http://elar.usu.ru, поиск).Дополнительная литератураАхо А., Лам М., Сети Р., Ульман Дж. Компиляторы: принципы,технологии и инструментарий. М.: ООО ”И.Д. Вильямс”, 2008.Ахо А., Ульман Дж. Теория синтаксического анализа, перевода икомпиляции. М.: Мир, 1978.Мартыненко Б. К. Языки и трансляции: Учеб. пособие. СПб.:Издательство С.-Петербургского университета, 2004 (электронныйвариант книги — на http://www.math.spbu.ru/user/mbk).

А. С. Герасимов (СПбАУ РАН) Лекции по теории формальных языков 15 апреля 2011 г. 23 / 23