A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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 –

Apresentações semelhantes


Apresentação em tema: "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 –"— Transcrição da apresentação:

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/


Carregar ppt "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 –"

Apresentações semelhantes


Anúncios Google