Упражнение 2.1.25 |
Синтаксический разбор
Определение 13.1.14. Протоколом
вычислительного процесса
МП-Автомата
будем называть последовательность переходов,
примененных в этом вычислительном процессе.
Формально говоря,
протоколом вычислительного процесса








Пример 13.1.15. Протоколом вычислительного процесса из примера 13.1.10 является последовательность

Определение 13.1.16.
Для каждой контекстно-свободной грамматики
обозначим через
контекстно-свободную грамматику
,
где
и
-
два различных новых символа, не принадлежащие множеству
,
и
.
Грамматику
будем называть грамматикой с маркером конца строки.
Терминальный алфавит
грамматики
(то есть множество
)
будем обозначать через
.
Нетерминальный алфавит
будем обозначать через
.
Пример 13.1.17.
Рассмотрим контекстно-свободную грамматику G
с терминальным алфавитом ,
вспомогательным алфавитом N = {S,A,B,C}
и
правилами



Замечание 13.1.18.
Очевидно, что .
Лемма 13.1.19. Если , где
и
, то
.
Доказательство.
Очевидно, что если ,
то
слово
не содержит символа
.
Теперь докажем индукцией по длине вывода,
что если ,
то
.
Пусть на последнем шаге в этом выводе применялось правило
.
Если ,
то
,
что невозможно (очевидно, что если
,
то слово
не содержит символа
).
Если ,
то рассмотрим два случая.
При




Определение 13.1.20.
Пусть даны контекстно-свободная грамматика
и МП-автомат
.
Будем говорить, что МП-автомат M - нисходящий магазинный анализатор
(или предсказывающий анализатор,
top-down, left-to-right parser, predictive parser)
для грамматики G,
если
и существует такой
гомоморфизм
,
что
для каждого
вычислительного процесса
(МП-автомата M ),
допускающего слово
,
образ протокола этого вычислительного процесса при гомоморфизме
является протоколом некоторого левостороннего вывода
слова w
в грамматике
.
(При задании гомоморфизма r
конечные множества
и
рассматриваются как два алфавита.)
Пример 13.1.21.
Рассмотрим контекстно-свободную
грамматику
из примера 13.1.17.
Язык
распознается недетерминированным МП-автоматом
,
где

