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

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

II – Análise léxica Conversão de expressões regulares em autómatos finitos determinísticos mínimos Bibliografia aconselhada: –Aho, Sethi e Ullman – secções.

Apresentações semelhantes


Apresentação em tema: "II – Análise léxica Conversão de expressões regulares em autómatos finitos determinísticos mínimos Bibliografia aconselhada: –Aho, Sethi e Ullman – secções."— Transcrição da apresentação:

1 II – Análise léxica 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 –Appel – secção 2.4 LFA 1999/ Jorge Morais

2 Expressão regular autómato finito determinístico mínimo 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 LFA 1999/ Jorge Morais

3 ER AF : LFA 1999/ Jorge Morais

4 ER AF : a LFA 1999/ Jorge Morais

5 ER AF : E 1 + E 2 LFA 1999/ Jorge Morais

6 ER AF : E 1 E 2 LFA 1999/ Jorge Morais

7 ER AF : E 1 * LFA 1999/ Jorge Morais

8 Propriedades do autómato final 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 LFA 1999/ Jorge Morais

9 Exemplo: (0+1) * (1+000) LFA 1999/ Jorge Morais

10 AF AFD 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 LFA 1999/ Jorge Morais

11 Construção de subconjuntos 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) LFA 1999/ Jorge Morais

12 Exemplo: (0+1) * (1+000) 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 LFA 1999/ Jorge Morais

13 Exemplo (cont.) 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 LFA 1999/ Jorge Morais

14 Exemplo: AFD LFA 1999/ Jorge Morais

15 Minimizar número de estados 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. LFA 1999/ Jorge Morais

16 Exemplo: (0+1) * (1+000) 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) LFA 1999/ Jorge Morais

17 Exemplo: 0 * (100 * ) * (1+ ) LFA 1999/ Jorge Morais

18 Exemplo: 0 * (100 * ) * (1+ ) 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 LFA 1999/ Jorge Morais

19 Exemplo: 0 * (100 * ) * (1+ ) 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 LFA 1999/ Jorge Morais

20 Exemplo: 0 * (100 * ) * (1+ ) LFA 1999/ Jorge Morais

21 Exemplo: 0 * (100 * ) * (1+ ) 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) LFA 1999/ Jorge Morais

22 Exemplo: 0 * (100 * ) * (1+ ) LFA 1999/ Jorge Morais


Carregar ppt "II – Análise léxica Conversão de expressões regulares em autómatos finitos determinísticos mínimos Bibliografia aconselhada: –Aho, Sethi e Ullman – secções."

Apresentações semelhantes


Anúncios Google