Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
NikitchenkoNEWNEW.doc
Скачиваний:
26
Добавлен:
08.11.2019
Размер:
2.99 Mб
Скачать

4.9.4. Нормальна форма Грейбах

Визначення 4.37. КВ-граматику G=(N, T, P, S) будемо називати граматикою в нормальній формі Грейбах, якщо її правила мають вигляд Aa (aT, (NT)*), тобто кожне правило починається з термінального символу.

Сформулюємо без доведення наступне твердження.

Лема 4.8 За кожною КВ-граматикою можна побудувати -еквівалентну їй (з точністю до порожнього ланцюжка) граматику у нормальній формі Грейбах.

Зауважимо, що наявність нормальної форми Грейбах дозволяє досить легко за кожною граматикою побудувати еквівалентний їй недетермінований магазинний автомат. Також у таких граматиках довжина виводу термінального ланцюжка не перевищує його довжину.

Приклад 4.22. Граматика S, SabSc еквівалентна наступній граматиці в нормальній формі Грейбах: Sabc, SabSc.

4.9.5. Рекурсивні нетермінали

Визначення 4.38. Нетермінал А  N КВ-граматики назвемо рекурсивним (самовставним, циклічним), якщо існує вивід виду А*А. Якщо такого виводу немає, то нетермінал називають нерекурсивним.

Лема 4.9. Якщо КВ-граматика G не має рекурсивних нетерміналів, то мова L(G) скінченна.

Дійсно, в цьому випадку може бути лише скінченна кількість виводів, тому породжується лише скінченна мова.

Зауважимо, що зворотне твердження не є справедливим для довільної граматики, бо може бути рекурсивний нетермінал, що породжує скінченну мову. Це можливо для рекурсивного нетерміналу, коли є вивід А*А, але завжди з  та  породжуються порожні ланцюжки: * та *. Крім того, рекурсивні недосяжні або непродуктивні рекурсивні нетермінали не впливають на породжувану мову.

Приклад 4.23. Розглянемо граматику, множина Р якої складається з наступних правил виведення:

SAB

AC

Aa

Bb

CA

Мова, породжена цією граматикою, складається з єдиного ланцюжка ab. Але нетермінали A та C є рекурсивними.

Отже, наведена лема дозволяє сформулювати необхідну умову породження КВ-граматикою нескінченних мов: нескінченна мова може породжуватися лише граматикою з рекурсивними нетерміналами. Але ця умова, як показує приклад, не є достатньою.

Для нескінченних мов має місце наступне твердження.

Лема 4.10. Нехай граматика G=(N, T, P, S) породжує нескінченну мову. Тоді існує суттєвий рекурсивний нетермінал A такий, що має місце А*t1Аt2, де t1,t2T* та |t1t2|1.

Ця лема буде використовуватись для доведення властивостей КВ-мов.

4.10. Властивості контекстно-вільних мов

У цьому розділі розглянемо властивості КВ-мов, тобто структуру їх ланцюжків, виразну потужність КВ-мов та їх замкненість відносно операцій над формальними мовами.

Спочатку сформулюємо для КВ-мов аналог твердження (Лема 4.10), яке характеризувало властивості КВ-граматик.

Лема 4.11 (лема про розростання, лема про накачку). Нехай – КВ-мова над алфавітом T. Тоді знайдеться таке натуральне число k, що для довільного ланцюжка tL довжини не менше k знайдуться ланцюжки u, v, t1, t2, xT*, для яких вірно ut1xt2v=t, |t1t2|1, |t1xt2|k та ut1ix t2ivL для всіх i=0,1,….

Ідея доведення полягає в тому, що для породження мови L розглядається граматика у нормальній формі Хомського (нескорочуюча граматика). Тоді для достатньо довгих виводів можна виділити рекурсивний нетермінал A такий, що має місце А*t1Аt2, де t1,t2T* та |t1t2|1 (дивись попередню лему). Звідси і буде випливати твердження леми.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]