ii – análise léxica conversão de expressões regulares em autómatos finitos determinísticos...

22
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, 3.1.3 e 3.1.4 – Appel – secção 2.4 LFA 1999/2000 - 1 Jorge Morais

Upload: internet

Post on 17-Apr-2015

111 views

Category:

Documents


0 download

TRANSCRIPT

Page 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

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, 3.1.3 e 3.1.4– Appel – secção 2.4

LFA 1999/2000 - 1Jorge Morais

Page 2: 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

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/2000 - 2Jorge Morais

Page 3: 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

ER AF:

LFA 1999/2000 - 3Jorge Morais

Page 4: 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

ER AF: a

LFA 1999/2000 - 4Jorge Morais

Page 5: 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

ER AF: E1 + E2

LFA 1999/2000 - 5Jorge Morais

Page 6: 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

ER AF: E1 E2

LFA 1999/2000 - 6Jorge Morais

Page 7: 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

ER AF: E1*

LFA 1999/2000 - 7Jorge Morais

Page 8: 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

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/2000 - 8Jorge Morais

Page 9: 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

Exemplo: (0+1)*(1+000)

LFA 1999/2000 - 9Jorge Morais

Page 10: 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

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/2000 - 10Jorge Morais

Page 11: 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

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/2000 - 11Jorge Morais

Page 12: 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

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/2000 - 12Jorge Morais

Page 13: 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

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/2000 - 13Jorge Morais

Page 14: 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

Exemplo: AFD

LFA 1999/2000 - 14Jorge Morais

Page 15: 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

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/2000 - 15Jorge Morais

Page 16: 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

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/2000 - 16Jorge Morais

Page 17: 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

Exemplo: 0*(100*)*(1+ )

LFA 1999/2000 - 17Jorge Morais

Page 18: 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

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/2000 - 18Jorge Morais

Page 19: 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

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/2000 - 19Jorge Morais

Page 20: 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

Exemplo: 0*(100*)*(1+ )

LFA 1999/2000 - 20Jorge Morais

Page 21: 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

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/2000 - 21Jorge Morais

Page 22: 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

Exemplo: 0*(100*)*(1+ )

LFA 1999/2000 - 22Jorge Morais