![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Проверка существования языка грамматики
Алгоритм Проверка существования языка грамматики
Вход: КС-грамматика Выход: заключение о существовании или отсутствии языка грамматики. Определим множество нетерминалов, порождающих терминальные строки Шаг 1. Положить N0=Ø. Шаг 2. Вычислить Шаг 3. Если Если
Пример Дана грамматика N0 = Ø; N1 = {A, B}; N2 = {S, A, B}; N3 = {S, A, B}. Т.к. N2=N3, то N = {S, A, B}, следовательно, язык грамматики существует, потому что начальный символ
Устранение недостижимых символов
Определение Бесполезными символами грамматики называют: а) нетерминалы, не порождающие терминальных строк, т.е. множество символов б) недостижимые нетерминалы, порождающие терминальные строки, т.е. множество символов в) недостижимые терминалы, т.е. множество символов Алгоритм Устранение нетерминалов, не порождающих терминальных строк Вход: КС-грамматика Выход: КС-грамматика Шаг 1. Определить множество нетерминалов, порождающих терминальные строки, с помощью алгоритма 4.1. Шаг 2. Вычислить Пример Дана грамматика Преобразуем ее в эквивалентную грамматику N0 = Ø; N1 = {S, B, C}; N2 = {S, B, C}. Т.к. N1= N2, то N = {S, B, C}. После удаления бесполезных нетерминалов и правил вывода, получим грамматику
Алгоритм Устранение недостижимых символов
Вход: КС-грамматика Выход: КС-грамматика Определим множество достижимых символов Z грамматики G, т.е. множество
Шаг 1. Положить Шаг 2. Вычислить очередное приближение следующим образом: Шаг 3. Если Шаг 4. Вычислить Пример Данаграмматика Преобразуем ее в эквивалентную грамматику W0 = {S}; W1 = {S, a, b}; W2 = {S, a, b}. Т.к. W1=W2, то W={S, a, b}. Множество недостижимых символов Устранение e-правил Алгоритм Устранение e-правил Вход: КС-грамматика Выход: Эквивалентная КС-грамматика Шаг 1. В исходной грамматике 1.1 Положить 1.2 Вычислить 1.3 Если Шаг 2. Из множества Шаг 3. Пополнить множество Шаг 4. Если Пример Дана грамматика Шаг 1. N0 = {A, B}; N1 = {S, A, B}; N2 = {S, A, B}. Т.к. N1 = N2, то искомое множество построено и N = {S, A, B}. Шаг 2, 3. Множество Шаг 4. Т.к. Устранение цепных правил Алгоритм Устранение цепных правил Вход: КС-грамматика Выход: Эквивалентная КС-грамматика Шаг 1. Для каждого нетерминала 1.1 Положить 1.2 Вычислить 1.3 Если Шаг 2. Построить множество
Пример Грамматика Шаг 1. Т.к. Т.к. Т.к. Шаг 2. Преобразовав правила вывода грамматики, получим грамматику
Левая факторизация правил Популярное:
|
Последнее изменение этой страницы: 2016-04-11; Просмотров: 1781; Нарушение авторского права страницы