Вы находитесь на странице: 1из 56

Linguagens

Linguagens
Um alfabeto um cojunto finito de smbolos

= {a, b, c,K, z}
String (ou palavra): sequncia de smbolos
Exemplos: cat, dog, house,
Definida sobre um alfabeto:

= {a, b, c,K, z}
2

Linguagens
Uma linguagem L um conjunto de strings
sobre um determinado alfabeto

* : Conjunto de todos os strings sobre o


alfabeto

L *

Alfabeto e Strings
Vamos usar alfabetos pequenos:

= {a, b}

Strings

a
ab

u = ab

abba

v = bbbaaa
w = abba

baba
aaabbbaabab

Operaes sobre Strings

w = a1a2 L an

abba

v = b1b2 Lbm

bbbaaa

Concatenao

wv = a1a2 Lanb1b2 Lbm

abbabbbaaa
5

w = a1a2 L an

ababaaabbb

Reverso

w = an L a2a1

bbbaaababa
6

Comprimento de um String

w = a1a2 L an
Comprimento:

Exemplos:

w =n

abba = 4
aa = 2
a =1
7

Definio Recursiva de Comprimento


Para o string vazio:

=0

Para qualquer string aw :


Exemplo:

aw = 1+ w

abba = 1+ bba
= 1+1+ ba
= 1+1+1+ a
= 1+1+1+1
=4

Comprimento de Concatenao

uv = u + v
Exemplo:

u = aab, u = 3
v = abaab, v = 5
uv = aababaab = 8
uv = u + v = 3 + 5 = 8
9

Prova de Comprimento de Concatenao


afirmao:

uv = u + v

Prova: Induo
Caso base: u =

uv = v
= 0+ v
= u+ v

pela definio de concatenao


aritmmtica
pela definio de length
10

Hiptese de Induo:

uv = u + v

para u = 1, 2,

Passo Indutivo: vamos provar


para

, n 1

uv = u + v
u =n
11

Seja

Passo Indutivo
u = aw onde w = n1, a = 1

Da definio de length:

uv = awv = 1+ wv

Da hiptese de induo:

wv = w + v

Portanto:

uv = 1+ w + v = aw + v = u + v
12

String vazio
String sem nenhuma letra:

Observaes:

=0
w = w = w
abba = abba = abba
13

Substring
Substring de um string:
subsequncia de caracteres consecutivos
String

Substring

abbab

ab

abbab
abbab
abbab

abba
b
bbab
14

Prefixo e Sufixo

abbab
Prefixos

Sufixos

a
ab
abb
abba
abbab

abbab
bbab
bab
ab
b

w = uv
prefixo
sufixo

15

Outra Operao
n

w =1
ww
L
w
42
4
3
n

Exemplo:

Definio:

(abba ) = abbaabba
0

w =
0

(abba ) =
16

A Operao *

* : o conjunto de todos os possveis strings


do alfabeto

= {a, b}
* = { , a, b, aa, ab, ba, bb, aaa, aab,K}

17

A Operao +
+ : o conjunto de todos os possveis strings

do alfabeto exceto

= {a, b}
* = { , a, b, aa, ab, ba, bb, aaa, aab,K}
+

= * {}
+

= {a, b, aa, ab, ba, bb, aaa, aab,K}


18

Linguagem
Uma linguagem qualquer subconjunto de
Exemplo:

= {a, b}
* = { , a, b, aa, ab, ba, bb, aaa,K}

Linguagens: { }

{a, aa, aab}


{ , abba, baba, aa, ab, aaaaaa}

19

Outro Exemplo
Uma linguagem infinita

ab
aabb
aaaaabbbbb

n n

L = { a b : n 0}

abb L

20

Operaes sobre Linguagens


Operaes usuais sobre conjuntos

{a, ab, aaaa} U {bb, ab} = {a, ab, bb, aaaa}


{a, ab, aaaa} I {bb, ab} = {ab}
{a, ab, aaaa} {bb, ab} = {a, aaaa}
Complemento:

L = * L

{a, ba} = { , b, aa, ab, bb, aaa,K}


21

Reverso
Definio:
Exemplos:

L = {w : w L}
R

{ab, aab, baba} = {ba, baa, abab}


n n

L = {a b : n 0}
R

n n

L = {b a : n 0}
22

Concatenao
Definio:

Exemplo:

L1L2 = {xy : x L1, y L2 }

{a, ab, ba}{b, aa}


= {ab, aaa, abb, abaa, bab, baaa}
23

Outra Operao
Definio:

L =1
LL2
L3
L
n

{a, b} = {a, b}{a, b}{a, b} =


{aaa, aab, aba, abb, baa, bab, bba, bbb}
Caso epecial: L0 = {}

{a , bba , aaa }0 = {}
24

Mais Exemplos
n n

L = {a b : n 0}
2

n n m m

L = {a b a b : n, m 0}
2

aabbaaabbb L

25

Fecho de Kleene *
Definio:

L* = L U L U L L

Exemplo:

a, bb,

{a, bb}* =

aa, abb, bba, bbbb,

aaa, aabb, abba, abbbb,K


26

Fecho Positivo
Definio:

L = L U L UL
= L * { }

a, bb,

+
{a, bb} = aa, abb, bba, bbbb,

aaa, aabb, abba, abbbb,K

27

Autmato Finito

28

Autmato Finito
Entrada
String
Sada
Autmato
Finito

String

29

Aceitador Finito
Entrada
String
Sada
Autmato
Finito

Aceita
ou
Rejeita

30

Grafo deTransio
Autmato Finito para abba a, b
q5

b
q0 a

a
a
b
q1 b q2 b q3 a

estado
inicial

transio
estado

a, b

q4
estado
final
aceita
31

Configurao Inicial
String de Entrada

a b b a
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

32

Lendo a Entrada
a b b a
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

33

a b b a
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

34

a b b a
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

35

a b b a
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

36

a b b a
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

Sada: aceita
37

Rejeio
a b a
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

38

a b a
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

39

a b a
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

40

a b a
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

41

a b a
a, b

b
q0 a

Sada:
q5 rejeita
a, b

a
a
b
q1 b q2 b q3 a

q4

42

Outro Exemplo
a a b

a, b

q0

q1

a, b

q2

43

a a b

a, b

q0

q1

a, b

q2

44

a a b

a, b

q0

q1

a, b

q2

45

a a b

a, b

q0

q1

a, b

q2

46

a a b

a, b

a
Sada: aceita

q0

q1

a, b

q2

47

Rejeio
b a b

a, b

q0

q1

a, b

q2

48

b a b

a, b

q0

q1

a, b

q2

49

b a b

a, b

q0

q1

a, b

q2

50

b a b

a, b

q0

q1

a, b

q2

51

b a b

a, b

q0

q1

a, b

q2

Sada: rejeita
52

Formalizao
Autmato Finito Determinista (DFA)

M = (Q, , , q0 , F )

Q : conjunto de estados
: alfabeto de entrada
: funo de transio
q0 : estado inicial

: conjunto de estados finais


53

Alfabeto de Entrada

= {a, b}
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4
54

Conjunto de Estados Q

Q = {q0 , q1, q2 , q3 , q4 , q5 }
a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4
55

Estado Inicial q0

a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

56

Вам также может понравиться