Построение распознователя грамматик. Построение распознавателя для заданной грамматики и реализация е. Курсовая работа по дисциплине "Основы дискретной математики"
Скачать 227 Kb.
|
2. Разработка программного продукта2.1 Построение распознавателя для грамматикиДля заданной в варианте грамматики построить распознаватель. Вариант 10: G [Q] = (VT = { a, b, h }; VN = { Q, A, B, H }; P = { Q a Q H (1); Q b a h A (2); A a b B h (3); H b B (4); B a b b H h (5); H (6) }) Решение: 1 Проверка нетерминальные символов исходной грамматики на достижимость (все правила, в которые входят недостижимые нетерминалы, не нарушая эквивалентности, можно исключить). (2) (3) (5) (номера правил) { Q } { Q, A } { Q, A, B } { Q, A, B, H } (недостижимых нетерминалов нет) 2 Проверка нетерминальных символов полученной после выполнения п.1 грамматики на продуктивность (все правила, в которые входят непродуктивные нетерминальные символы, не нарушая эквивалентности, можно исключить). (6) (5) (3) (2) (номера правил) { Н } { Н, B } {Н, B, A } {Н, B, A, Q } (непродуктивных нетерминалов нет). 3. Определение типа полученной после выполнения предыдущих пунктов грамматики. После эквивалентных преобразований новая грамматика не изменилась: G [Q] = (VT = { a, b, h }; VN = { Q, A, B, H }; P = { Q a Q H (1); Q b a h A (2); A a b B h (3); H b B (4); B a b b H h (5); H (6) }) 4. Определим тип полученной грамматики: по виду правил можно сказать, что это контекстно-свободная грамматика (неправосторонняя - несоответствие в правилах (1), (3) и не является S-грамматикой -есть эпсилон-правило (6)). Полученная грамматика может быть q -грамматикой- (по определению для такой грамматики множества “Выбор” для правил с одинаковыми левыми частями попарно не пересекаются). Для такой грамматики множества “Выбор” для правил с одинаковыми левыми частями попарно не пересекаются (пересечение пусто). “Выбор Q (1) ” = { a }; “Выбор Q (2) ” = b “Выбор Q (1) ” “Выбор Q (2) ” = { (пусто) }; “Выбор H (4) ” = { b }; “Выбор H (6) ” = "СледH" = {h, -| } “Выбор H (4) ” “Выбор H (6) ” = { (пусто) }; Исследуемая грамматика является q - грамматикой. 5. В соответствии с известным алгоритмом строим для этой грамматики МП-распознаватель: Алфавит магазинных символов Vмаг = { Q, H, A, B, a, b, h } Управляющая таблица имеет вид:
4 Для проверки правильности работы МП-распознавателя выведем, применяя правила грамматики, правильную цепочку: (2) (3) (5) (5) Q b a h A b a h b B h b a h b a b b H h h b a h b a b b h h
5. Полное описание МП - распознавателя: Входной алфавит { a, b, h --|} Алфавит магазинных символов {Q, A, B, H, a, b, h, } Множество состояний { S 1 } Начальная конфигурация (S 1, Q, ) Допускающая конфигурация (S 1, ) Управляющая таблица приведена выше. 6. Программа, реализующая МП - распознаватель, приведена в приложении. |