Упражнение 2.1.25 |
Синтаксический разбор
Определение 13.1.22. Сентенциальной формой (sentential form)
грамматики
называется любое слово в алфавите
,
выводимое из начального символа S.
Пример 13.1.23. Слова S, aSeaceSbb, aceaacecbecbb являются сентенциальными формами грамматики из примера 13.1.3.
Определение 13.1.24.
Пусть дана
контекстно-свободная грамматика .
Определим три функции
,
и
,
связанные с грамматикой G.
Для краткости будем писать просто FIRST, FOLLOW и DIRECTOR.
Функция FIRST
ставит
в соответствие
каждому слову
множество тех терминальных символов,
с которых начинаются слова,
выводимые из
,
то есть

Функция FOLLOW ставит в соответствие каждому нетерминальному символу A множество тех терминальных символов, которые могут встречаться в сентенциальных формах непосредственно справа от A, то есть

Функция DIRECTOR
ставит
в соответствие
каждому правилу
множество терминальных символов,
определяемое следующим образом:
если
,
то


Пример 13.1.25. Рассмотрим контекстно-свободную грамматику из примера 13.1.3. Очевидно, что

Пример 13.1.26.
Рассмотрим контекстно-свободную
грамматику
из примера 13.1.17.
Очевидно, что

Пример 13.1.27. Пусть контекстно-свободная грамматика не содержит бесполезных символов.
Пусть даны
правило
и
символ
. Тогда утверждение





Теорема 13.1.28. Пусть дана
контекстно-свободная грамматика . Пусть
- соответствующая
контекстно-свободная
грамматика с маркером конца строки,
приведенная в определении 13.1.16. Обозначим через M МП-автомат
, где




Доказательство.
Индукцией по количеству тактов
можно доказать, что
если ,
где
,
то
.
Следовательно,
.
С другой стороны,
докажем, что если
в грамматике
выводится
и
,
где
,
,
,
,
то
.
Проведем доказательство индукцией по сумме
длины слова bw
и длины вывода .
Случай |bw| = 1,
образует базис индукции
(очевидно,
что
).
Проверим теперь шаг индукции.
Так как
и
,
то
.
Если
,
где
,
то вывод
имеет вид




















Гомоморфизм
задается соотношениями
