Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouEloah Jacob Alterado mais de 11 anos atrás
1
II – Análise léxica DEI Conversão de expressões regulares em autómatos finitos determinísticos mínimos Bibliografia aconselhada: Aho, Sethi e Ullman – secções 3.6, 3.7 e 3.9 Crespo – subsecções 3.1.2, e 3.1.4 Appel – secção 2.4 Jorge Morais LFA 1999/
2
Expressão regular autómato finito determinístico mínimo
DEI Conversão expressão regular autómato finito (Construção de Thompson) Conversão autómato finito autómato finito determinístico (construção de subconjuntos) Conversão autómato finito determinístico com estados supérfluos autómato finito determinístico mínimo Jorge Morais LFA 1999/
3
ER AF: DEI Jorge Morais LFA 1999/
4
ER AF: a DEI Jorge Morais LFA 1999/
5
ER AF: E1 + E2 DEI Jorge Morais LFA 1999/
6
ER AF: E1 E2 DEI Jorge Morais LFA 1999/
7
ER AF: E1* DEI Jorge Morais LFA 1999/
8
Propriedades do autómato final
DEI O autómato criado tem no máximo duas vezes o número de símbolos da expressão regular Existem um estado inicial e um final sem transições Para cada estado, ou existe uma transição com um símbolo de ou existem duas transições com Jorge Morais LFA 1999/
9
Exemplo: (0+1)*(1+000) DEI Jorge Morais LFA 1999/
10
AF AFD DEI fecho-(s): conjunto de estados alcançáveis a partir do estado s com transições de fecho-(T): conjunto de estados alcançáveis a partir de estados s T com transições de mover(T,a): conjunto de estado para os quais existe uma transição a partir de estados s T com o símbolo a Jorge Morais LFA 1999/
11
Construção de subconjuntos
DEI fecho-(i) é o primeiro estado não marcado enquanto houver estados T não marcados marcar T para cada símbolo a U = fecho-(mover(T,a)) se U não pertence ao conjunto de estados inserir U não marcado adicionar transição (T,a,U) Jorge Morais LFA 1999/
12
Exemplo: (0+1)*(1+000) DEI fecho-(0) = {0,1,2,4,7,8,10} = A
fecho-(mover(A,0)) = fecho-({3,11}) = {1,2,3,4,6,7,8,10,11} fecho-(mover(A,1)) = fecho-({5,9}) = {1,2,4,5,6,7,8,9,10,14} = C fecho-(mover(B,0)) = fecho-({3,11,12}) = {1,2,3,4,6,7,8,10,11,12} = D fecho-(mover(B,1)) = fecho-({5,9}) = C Jorge Morais LFA 1999/
13
Exemplo (cont.) DEI fecho-(mover(C,0)) = fecho-({3,11}) = B
fecho-(mover(C,1)) = fecho-({5,9}) = C fecho-(mover(D,0))=fecho-({3,11,12,13}) = {1,2,3,4,6,7,8,10,11,12,13,14} = E fecho-(mover(D,1)) = fecho-({5,9}) = C fecho-(mover(E,0))=fecho-({3,11,12,13}) = E fecho-(mover(E,1)) = fecho-({5,9}) = C Jorge Morais LFA 1999/
14
Exemplo: AFD DEI Jorge Morais LFA 1999/
15
Minimizar número de estados
DEI Partição inicial do conjunto de estados S em F e F\S Em cada partição vai-se, sucessivamente, fazer novas partições, mantendo juntos os estados que têm transições iguais entre partições Os novos estados são: estados iguais aos iniciais; conjunto de estados com transições iguais entre partições. Jorge Morais LFA 1999/
16
Exemplo: (0+1)*(1+000) DEI Partição inicial: (ABD)(CE)
Em (CE): o estado E tem a transição ((CE),0,(CE)), enquanto C tem a transição ((CE),0,(ABD)) (ABD)(C)(E) Em (ABD): A e B têm a transição ((ABD),0,(ABD)), enquanto D tem a transição ((ABD),0,(E)) (AB)(C)(D)(E) Em (AB): A tem a transição ((AB),0,(AB)), enquanto B tem a transição ((AB),0,(D)) (A)(B)(C)(D)(E) Jorge Morais LFA 1999/
17
Exemplo: 0*(100*)*(1+ ) DEI Jorge Morais LFA 1999/
18
Exemplo: 0*(100*)*(1+ ) DEI fecho-(0) = {0,1,3,4,10,11,13,14,15} = A
fecho-(mover(A,0)) = fecho-({2}) = {1,2,3,4,10,11,13,14,15} = B fecho-(mover(A,1)) = fecho-({5,12}) = {5,12,15} = C fecho-(mover(B,0)) = fecho-({2}) = B fecho-(mover(B,1)) = fecho-({5,12}) = C Jorge Morais LFA 1999/
19
Exemplo: 0*(100*)*(1+ ) DEI
fecho-(mover(C,0)) = fecho-({6}) = {4,6,7,9,10,11,13,14,15} = D fecho-(mover(C,1)) = fecho-() = fecho-(mover(D,0)) = fecho-({8}) = {4,7,8,9,10,11,13,14,15} = E fecho-(mover(D,1)) = fecho-({5,12}) = C fecho-(mover(E,0)) = fecho-({8}) = E fecho-(mover(E,1)) = fecho-({5,12}) = C Jorge Morais LFA 1999/
20
Exemplo: 0*(100*)*(1+ ) DEI Jorge Morais LFA 1999/
21
Exemplo: 0*(100*)*(1+ ) DEI
Como todos os estados são finais, vamos ter inicialmente uma única partição (ABCDE) Como C não tem transição com 1 para nenhum estado (ABDE) (C) Em (ABDE) todos os estados têm as mesmas transições: ((ABDE),0,(ABDE)) e ((ABDE),1,(C)) não são feitas mais partições (ABDE) (C) Jorge Morais LFA 1999/
22
Exemplo: 0*(100*)*(1+ ) DEI Jorge Morais LFA 1999/
Apresentações semelhantes
© 2025 SlidePlayer.com.br Inc.
All rights reserved.