L(P) – язык, определяемый автоматом Р – это множество цепочек, допускаемых автоматом Р.
Основное свойство МП-автоматов можно сформулировать следующим образом: «То, что происходит с верхним символом магазина, не зависит от того, что находится в магазине под ним».
3.11.2. Эквивалентность МП-автоматов и КС-грамматик
В теории перевода можно показать, что языки определяемые МП-автоматами, – это в точности КС-языки. Начнем с построения естественного (недетерминированного) «нисходящего» распознавателя, эквивалентного данной КС-грамматике.
Лемма.
Пусть
- КС-грамматика. По грамматике G можно построить такой МП-автомат R, что
.
Доказательство.
Построим R так, чтобы он моделировал все левые выводы в G.
Пусть
, где d определяется следующим образом:
1) если А ® а принадлежит Р, то
содержит
;
2)
для всех
.
Мы хотим показать, что
тогда и только тогда, когда
⊢n
для некоторых
.
Необходимость этого условия докажем индукцией по m. Допустим, что
. Если m=1 и
, то
⊢
⊢k
.
Теперь предположим, что
для некоторого m>1. Первый шаг этого вывода должен иметь вид
, где
для некоторого
и
. Тогда
⊢
. Если
, то по предложению индукции
⊢*
.
Если
, то
⊢
. Объединяя вместе эти последовательности тактов, видим, что
⊢+
.
Для доказательства достаточности покажем индукцией по n, что, если
⊢n
, то
.
Если n=1, то w=e и A®e принадлежит Р. Предположим, что утверждение верно для всех
. Тогда первый такт, сделанный МП-автоматом R, должен иметь вид
⊢
, причем
⊢ni
для
и
. Тогда
- правило из Р, и по предложению индукции
для
. Если
, то
. Таким образом

- вывод цепочки w из А в грамматике G.
Контрольные вопросы
1. Способы определения языков.
2. Грамматики.
3. Грамматики с ограничениями на правила.
4. Распознаватели.
5. Регулярные множества, их распознавание и порождения.
6. Алгоритм решения системы линейных выражений с регулярными выражениями.
7. Регулярные множества и конечные автоматы.
8. Проблема разрешимости.
9. Графическое представление конечных автоматов.
10. Минимизация конечных автоматов.
11. Алгоритм построения канонического конечного автомата. Контекстно-свободные грамматики.
12. Деревья выводов. Преобразование КС-грамматик.
13. Алгоритм устранения недостижимых символов.
14. Алгоритм устранения бесполезных символов.
15. Алгоритм преобразования в грамматику без е-правил. Алгоритм устранения цепных правил.
16. Грамматики без циклов. Нормальная форма Хомского. Алгоритм преобразования к нормальной форме Хомского.
17. Нормальная форма Грейбах.
18. Алгоритм устранения левой рекурсии.
19. Автоматы с магазинной памятью.
4. КС-грамматики и синтаксический анализ сверху вниз
В практических приложениях нас больше будут интересовать детерминированные МП-автоматы, т. е. такие, которые в каждой конфигурации могут сделать не более одного очередного такта. Языки, определяемые детерминированными МП-автоматами, называются детерминированными КС-языками, а их грамматики — LR (k)-грамматиками.
Определение.
МП-автомат
называется детерминированным (ДМП), если для каждых
и
либо
1)
содержит не более одного элемента для каждого
и
, либо
2)
для всех
и
содержит не более одного элемента.
Соглашение. Так как ДМП-автомат содержит не более одного элемента, мы будем писать
вместо
.
Как уже отмечалось, однотактовые детерминированные МП-автоматы порождают КС-языки, которые называются LR(k)-грамматиками. Те в свою очередь являются частным случаем s-грамматик.
Определение. s-грамматика представляет собой грамматику, в которой:
1) правые части каждого порождающего правила начинаются с терминала;
2) в тех случаях, когда в левой части более чем одного порождающего правила появляется нетерминал, соответствующие правые части начинаются с различных терминалов.
Первое условие аналогично утверждению, что грамматика находится в нормальной форме Грейбах, только за терминалом в начале каждой правой части правила могут следовать нетерминалы и/или терминалы.
Второе условие соответствует существованию детерминированного одношагового МП-автомата.
Пример.
S®pX S®qY X®aXb | X®x Y®aYd Y®y |
Рассмотрим проблему разбора строки paaaxbbb с помощью заданной s-грамматики. Начав с символа S, попытаемся генерировать строку, применяя левосторонний вывод. Результаты приведены в табл. 4.1.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |


