
formal_language_theory / lectures / unit_9
.pdf
Теория формальных языков и трансляций
Глава 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