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

4.3. Операції над формальними мовами

Операції над формальними мовами розподіляються на два класи. Перший клас операцій відповідає над-абстрактній моделі мов, у якій вони мають інтенсіонал множини. Тому всі теоретико-множинні операції можна застосовувати для мов. У першу чергу, це операції об’єднання , перетину  та різниці \. Вважаємо, що мови – аргументи цих операцій – задані над одним і тим самим алфавітом. Якщо це не так, то будуємо новий алфавіт, який є об’єднанням алфавітів мов-аргументів. Тоді всі мови-аргументи будуть мовами над одним алфавітом. Якщо мова L є мовою в алфавіті Σ, то мова Σ*\L називається доповненням мови L відносно алфавіту Σ. Коли з контексту ясно, про який алфавіт йде мова, говорять просто, що мова Σ*\L є доповненням мови L і позначається .

Приклад 4.7. Нехай L1={anbncm| n,m0}, L2={anbmcm| n,m0}. Тоді

L1L2={ anbncn| n0}, L1\L2={ anbncm| mn, n,m0}.

Другий клас операцій над формальними мовами відповідає абстрактній моделі мов, коли їх елементи тлумачаться як послідовності символів. Серед цих операцій, у першу чергу, відзначимо операцію добутку (конкатенації) мов, яка є похідною від операції конкатенації ланцюжків. Для позначення цієї операції використовуємо той самий символ операції конкатенації.

Визначення 4.10. Нехай . Тоді . Мова називається конкатенацією мов та .

Приклад 4.8. Якщо та , то .

Найважливішою характеристикою операції добутку мов є її асоціативність. Одиницею цієї операції є мова, що складається з порожнього ланцюжка, тобто мова {  }. Похідною від добутку є операція піднесення до степені. Вважаємо, що , .

Маючи степінь, дамо індуктивне визначення ітерації, яку ще називають замиканням Кліні, або «зірочкою Кліні».

Визначення 4.11. Ітерацією мови (позначається ) називається мова .

Приклад 4.9. {ab}*={ , ab, abab, ababab, …}.

Для мови, що складається з одного символу, фігурні дужки часто опускають і пишуть, наприклад, a* заміть (a}*.

Визначення 4.12. Оберненням або дзеркальним образом ланцюжка (позначається ) називається ланцюжок, складений із символів , взятих в оберненому порядку.

Приклад 4.10. Якщо , то .

Визначення 4.13. Нехай . Тоді .

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

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

За способом подання правильних ланцюжків формальні граматики поділяються на породжуючі і розпізнаючі (граматики породження та сприйняття). До породжуючих граматик відносяться граматики, які дозволяють побудувати будь-який правильний ланцюжок з зазначенням його структури і не дозволяють побудувати жодного неправильного ланцюжка. Розпізнаюча граматика – це граматика, яка дозволяє визначити, чи є довільно обраний ланцюжок правильним і, якщо він є правильним, визначити його структуру.

Формальні граматики широко застосовуються в лінгвістиці, інформатиці, логіці, та програмуванні у зв’язку з вивченням природних та штучних мов.

Почнемо з розгляду породжуючих граматик.

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