1 Linguagens. 2 Uma linguagem é um cojunto de strings String: Uma sequência de letras Exemplos:...

Post on 21-Apr-2015

121 views 0 download

Transcript of 1 Linguagens. 2 Uma linguagem é um cojunto de strings String: Uma sequência de letras Exemplos:...

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

qq

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