Você está na página 1de 11

schnorr / comp

Branch: master comp / conteudo / aulas / lexica / af.org Find file Copy path

schnorr hide latex commands 819c118 17 days ago

1 contributor

221 lines (159 sloc) 4.75 KB

Autmatos Finitos (Deterministas ou no)

1 Construindo um analisador lxico


Na ordem, de cima para baixo

Em parnteses: tcnica de converso

Vrias definies de ER

(Algoritmo de Thompson) \linebreak

Vrios AFND

(Concateno com ligaes vazias) \linebreak


Um nico AFND

(Algoritmo de Subconjuntos) \linebreak

Um nico AFD

(Gerador de cdigo) \linebreak

Funo em uma linguagem de usurio

2 Diagramas de Transio
Coleo de ns que representam estados
Arestas entre estados, rotulada por um ou mais smbolos

Convenes

Estados de \alert{aceitao} (ou finais)


Estados de \alert{aceitao com *}
Estado \alert{inicial}

Exemplo, supondo

identificador letra (letra | digito)*

Exemplo, supondo

relop < | > | <= | >= | = | <

3 Definio de Autmato Finito


3 Definio de Autmato Finito
Autmato finito $M$ sobre alfabeto $$ (K, $$, $, $e0$, F)

K um conjunto finito de estados

$$ o alfabeto de smbolos da linguagem

$ : K * K$ a funo de transio de estados, parcial

$e0$ o estado inicial

$F$ o conjunto de estados finais

4 Exemplo de Autmato Finito


Autmato que reconhece nmeros reais e inteiros

4.1 Definio
$M = (K, , , e0, F)$
$ = \{ d, . \}$
K = (e_0, e_1, e_2, e_3)
F = (e_1, e_3)
(e_0, d) = e_1
(e_1, d) = e_1
(e_1, .) = e_2
(e_2, d) = e_3
(e_3, d) = e_3

4.2 Tabela de Transies

d .

e_0 e_1

e_1 e_1 e_2

e_2 e_3

e_3 e_3

5 Segundo Exemplo de Autmato Finito


a b

inicial q_0 q_1 q_2

q_1 q_0 q_2

final q_2 q_2 q_2

Este autmato corresponde a qual expresso regular?

6 Dois tipos de autmatos: AFD e AFND


Autmato Finito No-Determinstico (AFND)
Tem um conjunto de estados S
Funes de transio
Um estado de partida
Um conjunto de estados finais (de aceitao)

Autmato Finito Determinstico (AFD)


Como um AFND
No tem transies vazias
No mximo uma transio de sada por smbolo

7 Construo de Thompson
Expresso Regular AFND

Cada ER bsica se traduz em um AFND


Pode-se agregar os AFND conforme se agregam as ERs

Cada AFND tem exatamente um estado de partida e um estado final

Referncias:

https://en.wikipedia.org/wiki/Thompsons_construction

8 Reconhecedores bsicos
AFND para reconhecer $\bf\epsilon$
AFND para reconhecer um smbolo a

9 Reconhecedor de Alternativa
AFND que reconhece a alternativa a|b
10 Reconhecedor de Concatenao
AFND que reconhece a alternativa ab

11 AFND reconhecedor do Fechamento de Kleene


11 AFND reconhecedor do Fechamento de Kleene
AFND que reconhece a*

12 Exerccio
Construir um AFND que reconhea (a|b)*abb

13 Qual o problema de AFND?


Pontos positivos

Bastante poderoso para implementar ERs


Aplicao trivial: ERs AFNDs Full AFND (lxico)

Pontos negativos (Problema)

-transies
Vrias transies de sada com o mesmo smbolo
Fcil para a fase de projeto, difcil de implementar