Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самарасінгхе_кр.docx
Скачиваний:
7
Добавлен:
15.02.2015
Размер:
212.76 Кб
Скачать

2.1.2 Автоматні граматики й регулярні вирази

Розглянемо мову L = {anbn | nі1}. Множина рядків цієї мови є підмножиною рядків мови, певного регулярного виразу R = aa*bb*. Дійсно в L всі рядки складаються тільки з тих послідовностей a й b, у яких символи a повторюються один і більше раз, за ними треба послідовність символів b, які точно повторюють попереднє їм кількість символів а. Для L(R) – ланцюжка включають всі послідовності символів а, за яких треба b, причому й таких у тому числі послідовностей, де кількість може бути й не рівним b. Тому в загальному випадку регулярний вираз R відповідає мові, породжуваному граматикою G[I]; такому що L (G[I]) = {anbm| n, m і 1} із графом переходів представленим на рис.12

Рисунок 12 Регулярний вираз R

Регулярний вираз R відповідний мові, породжуваної граматики G[I] із графом переходів

Відповідна автоматна граматика легко підбирається по графу G[I]:

I→a

B→Ab | b

C→a | e

У такий спосіб автоматна граматика G[I] породжує ту ж мову, що й мова L(R), визначений регулярним виразам L(R) = L (G[I]). У цьому випадку можна говорити про еквівалентності регулярного виразу R й автоматної граматики G[I]. Тому автоматну граматику G[I] ще називають регулярною, що й було зроблено в класифікації Хомського.

Змістовними прикладами використання регулярного виразу (РВ) є побудовані на принципах РВ сучасні лексичні аналізатори. На поняттях РВ і регулярних визначень побудована мова специфікацій генератора лексичних аналізаторів LEX. Багато конструкцій ОС UNIX використають РВ. Всі шаблони, де немає збалансованих конструкцій можуть легко представлятися регулярними виразами. Збалансованими конструкціями в цьому випадку є конструкції типу {a nbn| n>=1}. До таких конструкцій належить, наприклад, інфіксна форма арифметичних скобкових виразів.

Висновок

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

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

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

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

Література

1 Бабич Микола Павлович,Жуков Ігор Анатолійович Комп`ютерна схемотехніка.

2 Бронштейн, И.Н. Справочник по математике для инженеров и учащихся вузов / И.Н. Бронштейн, К.А. Семендяев. – М.: Наука, 2007. – 708 с.

3 Дехтярь М.И. Введение в схемы, автоматы и алгоритмы. – М.: Наука, 2002. С. 642.

4 Коган Д.И., Бабкина Т.С. Концепции конечного автомата и регулярного языка. Операции над регулярными языками. М.: Наука, 2000.

5 Конечный автомат–http://ru/wikipedia.org/wiki/Конечный_автомат.

6 Лупал А.М. Теория автоматов. Учебное пособие/СПбГУАП. – СПб., 2000. – 120 с., ил.

7 Мозговой, М.В. Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход. / М.В. Мозговой. – М.: Наука и Техника, 2006. С. 320.

8 Семакин, И.Г. Основы программирования. / И.Г. Семакин, А.П. Шестаков. – М.: Мир, 2006. C. 346.

9 Симанков, В.С. Основы функционального программирования / В.С. Симанков, Т.Т. Зангиев, И.В. Зайцев. – Краснодар: Куб ГТУ, 2002. – 160 с.

10 Регулярные выражения – http: // www.spo-theory.ru/ yazyki-i-regulyarnye-vyrazheniya/4–6-celesoobraznost-perehoda-ot-nka-k-dka.html

11 Фридл Дж. Регулярные выражения. СПб.: Питер, 2002.