Post on 21-Apr-2015
1
Linguagens
2
Uma linguagem é um cojunto de strings
String: Uma sequência de letras
Exemplos: “cat”, “dog”, “house”, …
Definida sobre um alfabeto:
Linguagens
zcba ,,,,
3
Alfabeto e StringsVamos usar alfabetos pequenos:
Strings
abbaw
bbbaaav
abu
ba,
baaabbbaaba
baba
abba
ab
a
4
Operações sobre Strings
m
n
bbbv
aaaw
21
21
bbbaaa
abba
mn bbbaaawv 2121
Concatenação
abbabbbaaa
5
12aaaw nR
naaaw 21 ababaaabbb
Reverso
bbbaaababa
6
Comprimento de um String
Comprimento:
Exemplos:
naaaw 21
nw
1
2
4
a
aa
abba
7
Definição Recursiva de ComprimentoPara o string vazio:
Para qualquer string :
Exemplo:
1wwawa
4
1111
111
11
1
a
ab
abbabba
8
Comprimento de Concatenação
Exemplo:
vuuv
853
8
5,
3,
vuuv
aababaabuv
vabaabv
uaabu
9
Prova de Comprimento de Concatenação
firmação:
Prova: Indução sobre a definição de lentgh
Base da Indução:
Da definição de length:
vuuv
v
1v
vuuuv 1
10
Hipótese de Indução:
for
Passo Indutivo: vamos provar
para
vuuv
nv ,,2,1
1nv
vuuv
11
Passo InductivoSeja , onde
Da definição de length:
Da hipótese de indução:
Portanto:
wav 1, anw
1
1
wwa
uwuwauv
wuuw
vuwauwuuv 1
12
String vazioString sem nenhuma letra:
Observações:
abbaabbaabba
www
0
13
SubstringSubstring de um string:
subsequência de caracteres consecutivos
String Substring
bbab
b
abba
ab
abbab
abbab
abbab
abbab
14
Prefixo e Sufixo
Prefixos Sufixosabbab
abbab
abba
abb
ab
a
b
ab
bab
bbab
abbab uvw
prefixo
sufixo
15
Outra Operação
Exemplo:
Definição:
n
n wwww
abbaabbaabba 2
0w
0abba
16
A Operação * : o conjunto de todos os possíveis
strings do alfabeto
*
,,,,,,,,,*
,
aabaaabbbaabaaba
ba
17
A Operação + : o conjunto de todos os possíveis strings do alfabeto exceto
,,,,,,,,,*
,
aabaaabbbaabaaba
ba
*
,,,,,,,, aabaaabbbaabaaba
18
LinguagemUma linguagem é qualquer subconjunto
de
Exemplo:
Linguagens:
*
,,,,,,,,*
,
aaabbbaabaaba
ba
},,,,,{
,,
aaaaaaabaababaabba
aabaaa
19
Outro Exemplo
Uma linguagem infinita }0:{ nbaL nn
aaaaabbbbb
aabb
ab
L Labb
20
Operações sobre LinguagensOperações usuais sobre conjuntos
Complemento:
aaaaaabbbaaaaaba
ababbbaaaaaba
aaaabbabaabbbaaaaaba
,,,,
}{,,,
},,,{,,,
LL *
,,,,,,, aaabbabaabbaa
21
Reverso
Definição:
Exemplos:
}:{ LwwL RR
ababbaabababaaabab R ,,,,
}0:{
}0:{
nabL
nbaL
nnR
nn
22
Concatenação
Definição:
Exemplo:
2121 ,: LyLxxyLL
baaabababaaabbaaaab
aabbaaba
,,,,,
,,,
23
Outra OperaçãoDefinição:
Caso epecial:
n
n LLLL
bbbbbababbaaabbabaaabaaa
babababa
,,,,,,,
,,,, 3
0
0
,, aaabbaa
L
24
Mais Exemplos
}0:{ nbaL nn
}0,:{2 mnbabaL mmnn
2Laabbaaabbb
25
Fecho de Kleene *
Definição:
Exemplo:
210* LLLL
,,,,
,,,,
,,
,
*,
abbbbabbaaabbaaa
bbbbbbaabbaa
bbabba
26
Fecho Positivo
Definição:
*
21
L
LLL
,,,,
,,,,
,,
,
abbbbabbaaabbaaa
bbbbbbaabbaa
bba
bba
27
Autômato Finito
28
Autômato Finito
Entrada
String
Saída
String
AutômatoFinito
29
Aceitador Finito
Entrada
“Aceita” ou“Rejeita”
String
AutômatoFinito
Saída
30
Grafo deTransição
estadoinicial
estado final “aceita”estado
transição
Autômato Finito para abba
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
31
Configuração Inicial
1q 2q 3q 4qa b b a
5q
a a bb
ba,
String de Entradaa b b a
ba,
0q
32
Lendo a Entrada
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b b a
ba,
33
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b b a
ba,
34
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b b a
ba,
35
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b b a
ba,
36
0q 1q 2q 3q 4qa b b a
Saída: “aceita”
5q
a a bb
ba,
a b b a
ba,
37
Rejeição
1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b a
ba,
0q
38
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b a
ba,
39
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b a
ba,
40
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b a
ba,
41
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
Saída:“rejeita”
a b a
ba,
42
Outro Exemplo
a
b ba,
ba,
0q 1q 2q
a ba
43
a
b ba,
ba,
0q 1q 2q
a ba
44
a
b ba,
ba,
0q 1q 2q
a ba
45
a
b ba,
ba,
0q 1q 2q
a ba
46
a
b ba,
ba,
0q 1q 2q
a ba
Saída: “aceita”
47
Rejeição
a
b ba,
ba,
0q 1q 2q
ab b
48
a
b ba,
ba,
0q 1q 2q
ab b
49
a
b ba,
ba,
0q 1q 2q
ab b
50
a
b ba,
ba,
0q 1q 2q
ab b
51
a
b ba,
ba,
0q 1q 2q
ab b
Saída: “rejeita”
52
FormalizaçãoAutômato Finito Determinista (DFA)
FqQM ,,,, 0
Q
0q
F
: conjunto de estados
: alfabeto de entrada
: função de transição
: estado inicial
: conjunto de estados finais
53
Alfabeto de Entrada
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
ba,
54
Conjunto de Estados
Q
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
543210 ,,,,, qqqqqqQ
ba,
55
Estado Inicial
0q
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
0q
56
Conjunto de Estados Finais
F
0q 1q 2q 3qa b b a
5q
a a bb
ba,
4qF
ba,
4q
57
Função de Transição
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
QQ :
ba,
58
10 , qaq
2q 3q 4qa b b a
5q
a a bb
ba,
ba,
0q 1q
59
50 , qbq
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
0q
60
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
32 , qbq
61
Função deTransição
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b
0q
1q
2q
3q
4q
5q
1q 5q
5q 2q
2q 3q
4q 5q
ba,5q5q5q5q
62
Função deTransição Extendida
*
QQ *:*
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
63
20 ,* qabq
3q 4qa b b a
5q
a a bb
ba,
ba,
0q 1q 2q
64
40 ,* qabbaq
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
65
50 ,* qabbbaaq
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
0q
66
50 ,* qabbbaaq
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
0q
Observação: Existe um caminho de para com rótulo
0qabbbaa
67
Definição Recursiva
)),,(*(,*
,*
awqwaq
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
68
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
2
1
0
0
0
0
,
,,
,,,*
),,(*
,*
q
bq
baq
baq
baq
abq
69
Linguagens Aceitas por DFAsSeja um DFA
Definição:A linguagem contém todos os strings aceitos por
= {strings que levam a um estado final }
M
MLM
M ML
70
Exemplo
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
abbaML M
aceita
71
Outro Exemplo
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
abbaabML ,, M
aceitaaceitaaceita
72
Formalmente
Dado um DFA
Linguagem aceita por :
FqQM ,,,, 0
M
FwqwML ,*:* 0
alfabeto função detransição
estadoinicial
estadosfinais
73
Observação Linguagem aceita por :
Linguagem rejeitada por :
FwqwML ,*:* 0
M
FwqwML ,*:* 0
M
74
Mais Exemplos
a
b ba,
ba,
0q 1q 2q
}0:{ nbaML n
aceita estado de erro
75
ML = { todos os substrings com prefixo }
ab
a b
ba,
0q 1q 2q
aceita
ba,3q
ab
76
ML = { todos os strings que não contêm o substring }001
0 00 001
1
0
1
10
0 1,0
77
Linguagens Regulares
Uma linguagem é regular se existe um DFA tal que
O conjunto de todas as linguagens regulares constitui uma classe de linguagens
LM MLL
78
ExemploA linguagemé regular:
*,: bawawaL
a
b
ba,
a
b
ba
0q 2q 3q
4q