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

spoPresentation2

.pdf
Скачиваний:
6
Добавлен:
11.05.2015
Размер:
4.74 Mб
Скачать

Цепочки символов

Цепочка символов (строка) – это произвольная упорядоченная конечная последовательность символов алфавита

Произвольность: в цепочку может входить любая допустимая последовательность символов, она не обязательно имеет смысл

Упорядоченность: цепочка имеет определенный состав входящих в нее символов, их количество и порядок следования

Цепочки: D, E, J

21

Цепочки символов

D = E, если цепочки D и E имеют один и тот

же состав символов, их количество и порядок следования

Длина цепочки – это количество символов в ней: |D|. Если D = E |D| = |E|

Конкатенацией 4 цепочек D, E называется цепочка J = D 4 E = DE. |J| = |D| + |E| . Цепочка D является префиксом, E - суффиксом строки J

Не коммуникативна: D, E: DE z ED

Ассоциативна: J (DE) = (JD) E

22

Цепочки символов

Любую цепочку символов можно представить как конкатенацию составляющих ее частей

Цепочка Z называется подцепочкой J, если

J = DZE

Заменой (подстановкой) цепочки J = DZE называется новая цепочка J ’ = DME

Обращение цепочки DR – это запись символов цепочки D в обратном порядке. DRR

= D

D, E: (DE) R = E RD R

23

Цепочки символов

Итерация цепочки Dn - это конкатенация цепочки D самой с собой n раз, n 1, nt0

D k =DD k-1 = D k-1D

Пустая цепочка символов O (H) не содержит

ни одного символа

D0 =O

|O|=0 D: OD = DO = D O R = O n t 0: O n =O

24

Цепочки символов

Цепочка символов D является цепочкой над алфавитом A: D(A), если xD, x A

Замыкание алфавита А (A*) – это множество всех возможных цепочек над алфавитом А

Пример

А = {a, b, c}

А* = {O, a, b, c, aa, ab, ac, bb, ba, bc, cc, ca, cb, aaa, aab, aac,…}

25

Цепочки символов

f

A* = А0 А1 А2 … = An

n 0

где А0 = {O}, A1 = A

 

f

A+ = А1 А2 … =

An

 

n 1

A* = A+ {O}

 

26

Язык

Язык L над алфавитом А: L(A) – это некоторое счетное подмножество цепочек конечной длины из множества всех цепочек алфавита А: L(A) А*

Язык L(A) включает в себя язык L’(A):

L’(A) L(A), если D L’(A): D L(A). Т.е.

множество цепочек языка L’(А) является подмножеством множества цепочек языка

L(A)

27

Язык

Языки L(A) и L’(A) эквивалентны:

L’(A)=L(A), если L’(A) L(A) и L(A) L’(A).

Или D L’(A): D L(A) и E L(A): E L’(A).

Для эквивалентных языков множества допустимых цепочек равны

Языки L(A) и L’(A) почти эквивалентны:

L’(A) # L(A), если L’(A) {O} = L(A) {O}.

L{O} = {O}L = L;

L = L =

28

Язык

Конкатенация произвольного числа цепочек формального языка L носит название

замыкания Клини:

f

L* = L0 L1 L2 … =

Ln , где L0 = {O}

 

n 0

При n t 1 справедливо Ln = LLn-1 = Ln-1L ( ноль или

более сцеплений языка L. Позитивное

замыкание означает одно или более f сцеплений языка L: L+ = L1 L2 … = An

или L+ = LL* = L*L, L* = L+ {O}.

n 1

 

29

Способы задания языков

перечисление всех допустимых цепочек языка

указание способа порождения цепочек языка (определение грамматики)

указание метода распознавания цепочек языка (определение распознавателя)

30

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