Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
125
Добавлен:
16.04.2015
Размер:
309.28 Кб
Скачать

Теория формальных языков и трансляций

Глава 9.

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

1

Булевы операции над языками обозначаются обычным образом: — объединение,— пересечение, C — дополнение.

Произведение L1 и L2 — это L1L2 = {xy x L1, y L2 }.

L0 = { },

Li + 1 = LLi , i ≥ 0,

 

¥

*

i

L = UL

 

i= 0

 

¥

+

i

L

= UL

 

i= 1

(*-итерация Клини),

(+-итерация Клини).

Отображение s : V Π(U *), продолжаемое на V * по правилам s( ) = { } и s(x1x2) = s(x1)s(x2) для x1, x2 V * ,

называется подстановкой.

Для языка L V *мы полагаем

s(L) = U s(x). x Î L

Вообще, любую n-местную операцию над строками g : V * ... V * Π(U *), мы распространяем на языки над V таким образом:

g(L

, ... , L ) =

U

 

g(x ,..., x ).

1

n

 

1

n

 

x Î L , 1£

i £

n

 

 

i

i

 

 

 

2

Если подстановка s : V Π(U *) такова, что множество s(a) конечно для каждого a V, то s называется конечной подстановкой.

Если card(s(a)) = 1 для a V, то s называется морфизмом.

Если s(a) для каждого a V, то s — нестирающая подстановка (нестирающий морфизм).

Морфизм h : V * U * называется кодированием, если h(a) U для каждого a V, и слабым кодированием, если h(a) U { } для всех a V.

Если V1 V2 = , то морфизм h : (V1 V2)* V 1* , определяемый правилом h(a) = a для a V1 и h(a) = в противном случае, мы будем называть проекцией (на V1) и обозначать prV .

Для морфизма h : V * U * мы определим отображение h−1 : U * Π(V *),

(которое назовём обратным морфизмом) по правилу h−1 (w) = {x V * h(x) = w}.

3

Для x, y V * определим их перетасовку как

x y = {x1 y1... xn yn | x = x1 ... xn, y = y1 ... yn , xi, yi V *, 1 ≤ i n, n ≥ 1}.

Зеркальным отображением строки x = a1 a2 ... an, где ai V , 1 ≤ i

n, назовём строку mi(x) = an... a2a1.

Как обычно, mi(L) = {mi(x) | x L}.

Левое частное языка L1 V * при делении на язык L2 V * — это

V * | существует строка x L2 , такая что x w L1 }.

V * по строке x V * — это

lx (L) = {w Î V * xw Î L}.

Правое частное и правая производная определяются сим-

метричным образом:

L1 \ L2 = {w V * | существует строка x L2 , такая что wx L1 },

r

(L) = {w Î V

*

wx Î

L}.

x

 

 

 

 

 

 

4

Таблица 9.1. Замкнутость семейств из иерархии Хомского.

 

RE

CS

CF

LIN

REG

 

 

 

 

 

 

Объединение

+

+

+

+

+

 

 

 

 

 

 

Пересечение

+

+

+

 

 

 

 

 

 

Дополнение

+

+

 

 

 

 

 

 

Произведение

+

+

+

+

 

 

 

 

 

 

*-итерация Клини

+

+

+

+

 

 

 

 

 

 

Пересечение с регулярными языками

+

+

+

+

+

 

 

 

 

 

 

Подстановка

+

+

+

 

 

 

 

 

 

Нестирающая подстановка

+

+

+

+

 

 

 

 

 

 

Морфизмы

+

+

+

+

 

 

 

 

 

 

Нестирающие морфизмы

+

+

+

+

+

 

 

 

 

 

 

Обратные морфизмы

+

+

+

+

+

 

 

 

 

 

 

Левое/правое частное

+

+

 

 

 

 

 

 

Левое/правое частное

+

+

+

+

при деление на регулярные языки

 

 

 

 

 

 

 

 

 

 

 

Левая/правая производная

+

+

+

+

+

 

 

 

 

 

 

Перетасовка

+

+

+

 

 

 

 

 

 

Зеркальное отображение

+

+

+

+

+

5

Соседние файлы в папке lectures