Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операции над языками

 

Определение 9.2.1. Конкатенацией языков L 1, L 2 Í А* называется язык L 1× L 2={ xy: xÎL1, yÎL2 }.

Определение 9.2.2. Пусть LÍА*. Тогда L0= { e }, L1=L, Ln+1= Ln × L (n=1, 2, …).

Пример 9.2.1. Пусть А= { a, b }, L= { aa, ab }. Выпишем все слова языка L2 в следующей таблице:

  aa ab
aa aaaa aaab
ab abaa abab

Заметим, что L2= {(aa) n (ab) m (aa) k: m, n³0, m+n+k=2 }.

Слова языка L3 могут быть получены следующим образом:

  aa ab
aaaa aaaaaa aaaaab
abaa abaaaa abaaab
aaab aaabaa aaabab
abab ababaa ababab

Попутно заметим, что L3¹ {(aa) n (ab) m (aa) k: m, n³0, m+n+k=3 }, поскольку ababab Ï{(aa) n (ab) m (aa) k: m, n³0, m+n+k=3 }.

Определение 9.2.3. Итерацией языка L называется язык

.

Пример 9.2.2. Если А ={ a, b } и L= { aa, ab, ba, bb }, то:

L*= { w Î A*: ç w ç mod 2=0 }.

Определение 9.2.4. Обращением (зеркальным образом) слова w называется слово, записанное теми же буквами в обратном порядке (обозначается w R).

Например, если w=abab, то w R= baba.

Определение 9.2.5. Пусть LÍA*. Тогда язык L R={ w R: wÎ L } называется обращением языка L.

Пример 9.2.3. Если А ={ a, b } и L= { aa, ab, ba, bb }, то L R= L.

Пример 9.2.4. Если А ={ a, b } и L= { anbm : n³1, m³1 }, то L R={ bman : n³1, m³1 }.

Определение 9.2.5. Пусть А1 и А2 алфавиты. Отображение H: A1*® A2*, удовлетворяющее условию H(u×w)=H(u)×H(w) для любых u, wÎ A1*, называется гомоморфизмом (морфизмом).

Очевидно, каждый гомоморфизм однозначно определяется своими значениями на однобуквенных словах.

Пример 9.2.5. Пусть А ={ a, b }. Определим гомоморфизм H: A*®A* равенствами H(a)=b, H(b)=a. Тогда H(aaabb)=bbaaa и т.д.

 

3. Порождающие грамматики

 

Определение 9.3.1. Порождающей грамматикой (грамматикой типа 0) называется четверка G=< N, A, P, S >, где:

а) N – конечный алфавит, называемый нетерминальным (вспомогательным) алфавитом, символы которого будем обозначать прописными латинскими буквами;

б) А – конечный алфавит, именуемый основным (терминальным) алфавитом, символы которого будем обозначать строчными латинскими буквами;

в) АÇN=Æ;

г) P – конечное подмножество декартового произведения:

(N È A)+ ´ (N È A)*,

при этом пары (a, b)Î P называются правилами подстановки (просто правилами или продукциями) и записываются в виде a®b;

д) S – нетерминальный символ (S Î N), называемый начальным символом.

Пример 9.3.1. Пусть N ={ S }, A= { a, b }, P ={ S®abS, S ®a }. Тогда G=< N, A, P, S > – является порождающей грамматикой.

Определение 9.3.2. Пусть дана порождающая грамматика G=< N, A, P, S >. Говорят, что слово v непосредственно выводимо из слова w (пишут wÞ v), если w=h a q, v=h b q при некоторых словах a, b, h, q в алфавите N È A и a®bÎ P.

Пример 9.3.2. Пусть N ={ S }, A= { a, b }, P ={ S®abS, S ®a }. G=< N, A, P, S > –порождающая грамматика.

Тогда SÞ abS, SÞa, abSÞaba, abSÞ ababS, ababSÞababa.

Определение 9.3.3. Пусть дана порождающая грамматика G. Говорят, что слово wn выводимо из слова w0 (пишут w0 wn), если

w0Þ w1Þw2Þ…Þwn (n³0).

Пример 9.3.3. Пусть N ={ S }, A= { a, b }, P ={ S®abS, S ®a }. G=< N, A, P, S > – порождающая грамматика.

Тогда Sa, Saba, Sababa, Sa(ba)m, abSababS и т.д.

Определение 9.3.4. Множество L (G)={ wÎA*: Sw } называется языком, порождаемым грамматикой G=< N, A, P, S >. Также говорят, что грамматика G порождает язык L (G).

Пример 9.3.4. Пусть N ={ S }, A= { a, b }, P ={ S®abS, S ®a }. G1=< N, A, P, S > – грамматика, порождающая язык

L (G1)={ a(ba)m: m³0 }.

Пример 9.3.5. Пусть N ={ S, F }, A= { a, b }, P ={ S®FF, F®aFb, F®ab }. G2=< N, A, P, S > – грамматика, порождающая язык

L (G2)={ anbnambm: n³1, m³1 }.

Определение 9.3.5. Две грамматики называются эквивалентными, если они порождают один и тот же язык.

Пример 9.3.6. Пусть N ={ S, F }, A= { a, b }, P ={ S®aF, F®baF, F®e }. G3=< N, A, P, S > – грамматика, порождающая язык

L (G3)={ a(ba)m: m³0 }.

Грамматика G3 эквивалентна грамматике G3 (см. пример 9.3.4).

 

<== предыдущая лекция | следующая лекция ==>
Понятие формального языка | Конечные автоматы
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 292; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.