Está en la página 1de 67

PROCESADORES DE LENGUAJES I

ANÁLISIS LÉXICO

Transformación ER → AFD

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Estado significativo de un AFN → transición de salida no ε

Si r E.R. → AFN(r):

Estados significativos AFN(r) ↔ operandos r

Único estado de aceptación: no significativo

Concatenamos r con # (símbolo no en Σ) a la E.R.) a la E.R.

Estado final AFN(r) es significativo en AFN(r#)

Llamamos r# r extendida

Punto de partida → árbol sintáctico de r#

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o #

o b

o b

* a

a b

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o #
6
o b
5
o b
4
* a
3
|

a b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o #
6
o b
5
o b
4
* a
3
|

a b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o #
6
o b
5
o b
4
* a
3
|

a b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o #
6
o b
5
o b
4
* a
3
|

a b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o #
6
o b
5
o b
4
* a
3
|

a b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o #
6
o b
5
o b
4
* a
3
|

a b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o #
6
o b
5
o b
4
* a
3
|

a b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o #
6
o b
5
o b
4
* a
3
|

a b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o {6} #
6
o {5} b
5
o {4} b
4
* {3} a
3
|

{1} a {2} b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o {6} #
6
o {5} b
5
o {4} b
4
* {3} a
3
{1,2} |

{1} a {2} b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o {6} #
6
o {5} b
5
o {4} b
4
{1,2} * {3} a
3
{1,2} |

{1} a {2} b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o {6} #
6
o {5} b
5
{1,2,3} o {4} b
4
{1,2} * {3} a
3
{1,2} |

{1} a {2} b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

o {6} #
6
{1,2,3} o {5} b
5
{1,2,3} o {4} b
4
{1,2} * {3} a
3
{1,2} |

{1} a {2} b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
o

{1,2,3} o {6} #
6
{1,2,3} o {5} b
5
{1,2,3} o {4} b
4
{1,2} * {3} a
3
{1,2} |

{1} a {2} b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o

{1,2,3} o {6} #
6
{1,2,3} o {5} b
5
{1,2,3} o {4} b
4
{1,2} * {3} a
3
{1,2} |

{1} a {2} b
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o

{1,2,3} o {6} # {6}


6
{1,2,3} o {5} b {5}
5
{1,2,3} o {4} b {4}
4
{1,2} * {3} a {3}
3
{1,2} |

{1} a {1} {2} b {2}


1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o

{1,2,3} o {6} # {6}


6
{1,2,3} o {5} b {5}
5
{1,2,3} o {4} b {4}
4
{1,2} * {3} a {3}
3
{1,2} | {1,2}

{1} a {1} {2} b {2}


1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o

{1,2,3} o {6} # {6}


6
{1,2,3} o {5} b {5}
5
{1,2,3} o {4} b {4}
4
{1,2} * {1,2} {3} a {3}
3
{1,2} | {1,2}

{1} a {1} {2} b {2}


1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o

{1,2,3} o {6} # {6}


6
{1,2,3} o {5} b {5}
5
{1,2,3} o {3} {4} b {4}
4
{1,2} * {1,2} {3} a {3}
3
{1,2} | {1,2}

{1} a {1} {2} b {2}


1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o

{1,2,3} o {6} # {6}


6
{1,2,3} o {4} {5} b {5}
5
{1,2,3} o {3} {4} b {4}
4
{1,2} * {1,2} {3} a {3}
3
{1,2} | {1,2}

{1} a {1} {2} b {2}


1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5}
5
{1,2,3} o {3} {4} b {4}
4
{1,2} * {1,2} {3} a {3}
3
{1,2} | {1,2}

{1} a {1} {2} b {2}


1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5}
5
{1,2,3} o {3} {4} b {4}
4
{1,2} * {1,2} {3} a {3}
3
{1,2} | {1,2}

{1} a {1} {2} b {2}


1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1
{1,2,3} o {3} {4} b {4}
2
4
{1,2} * {1,2} {3} a {3} 3
3 4
{1,2} | {1,2} 5
{1} a {1} {2} b {2} 6

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 ∅
{1,2,3} o {3} {4} b {4}
2 ∅
4
{1,2} * {1,2} {3} a {3} 3 ∅
3 4 ∅
{1,2} | {1,2}
5 ∅
{1} a {1} {2} b {2} 6 ∅
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 ∅
{1,2,3} o {3} {4} b {4}
2 ∅
4
{1,2} * {1,2} {3} a {3} 3 ∅
3 4 ∅
{1,2} | {1,2}
5 ∅
{1} a {1} {2} b {2} 6 ∅
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {3}
{1,2,3} o {3} {4} b {4}
2 {3}
4
{1,2} * {1,2} {3} a {3} 3 ∅
3 4 ∅
{1,2} | {1,2} 5 ∅
{1} a {1} {2} b {2} 6 ∅
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {3}
{1,2,3} o {3} {4} b {4}
2 {3}
4
{1,2} * {1,2} {3} a {3} 3 ∅
3 4 ∅
{1,2} | {1,2} 5 ∅
{1} a {1} {2} b {2} 6 ∅
1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {3}
{1,2,3} o {3} {4} b {4}
2 {3}
4
{1,2} * {1,2} {3} a {3} 3 {4}
3 4 ∅
{1,2} | {1,2} 5 ∅
{1} a {1} {2} b {2} 6 ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {3}
{1,2,3} o {3} {4} b {4}
2 {3}
4
{1,2} * {1,2} {3} a {3} 3 {4}
3 4 ∅
{1,2} | {1,2} 5 ∅
{1} a {1} {2} b {2} 6 ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {3}
{1,2,3} o {3} {4} b {4}
2 {3}
4
{1,2} * {1,2} {3} a {3} 3 {4}
3 4 {5}
{1,2} | {1,2} 5 ∅
{1} a {1} {2} b {2} 6 ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {3}
{1,2,3} o {3} {4} b {4}
2 {3}
4
{1,2} * {1,2} {3} a {3} 3 {4}
3 4 {5}
{1,2} | {1,2} 5 ∅
{1} a {1} {2} b {2} 6 ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {3}
{1,2,3} o {3} {4} b {4}
2 {3}
4
{1,2} * {1,2} {3} a {3} 3 {4}
3 4 {5}
{1,2} | {1,2} 5 {6}
{1} a {1} {2} b {2} 6 ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {3}
{1,2,3} o {3} {4} b {4}
2 {3}
4
{1,2} * {1,2} {3} a {3} 3 {4}
3 4 {5}
{1,2} | {1,2} 5 {6}
{1} a {1} {2} b {2} 6 ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {3}
{1,2,3} o {3} {4} b {4}
2 {3}
4
{1,2} * {1,2} {3} a {3} 3 {4}
3 4 {5}
{1,2} | {1,2} 5 {6}
{1} a {1} {2} b {2} 6 ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {1,2,3}
{1,2,3} o {3} {4} b {4}
2 {1,2,3}
4
{1,2} * {1,2} {3} a {3} 3 {4}
3 4 {5}
{1,2} | {1,2} 5 {6}
{1} a {1} {2} b {2} 6 ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
{1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {1,2,3}
{1,2,3} o {3} {4} b {4}
2 {1,2,3}
4
{1,2} * {1,2} {3} a {3} 3 {4}
3 4 {5}
{1,2} | {1,2} 5 {6}
{1} a {1} {2} b {2} 6 ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
Estado inicial A = {1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1 {1,2,3}
{1,2,3} o {3} {4} b {4}
2 {1,2,3}
4
{1,2} * {1,2} {3} a {3} 3 {4}
3 4 {5}
{1,2} | {1,2} 5 {6}
{1} a {1} {2} b {2} 6 ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
Estado inicial A = {1,2,3} o {6}

{1,2,3} o {5} {6} # {6}


6
{1,2,3} o {4} {5} b {5} n siguientepos(n)
5 1a {1,2,3}
{1,2,3} o {3} {4} b {4}
2b {1,2,3}
4
{1,2} * {1,2} {3} a {3} 3a {4}
3 4b {5}
{1,2} | {1,2} 5b {6}
{1} a {1} {2} b {2} 6# ∅

1 2

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#
Estado inicial A = {1,2,3}

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
5b {6}
6# ∅

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A
6# ∅

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A
6# ∅

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B
6# ∅
{1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B
6# ∅
{1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B {1,2,3,6} = D
{1,2,3,6} = D

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B {1,2,3,6} = D
{1,2,3,6} = D

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B {1,2,3,6} = D
{1,2,3,6} = D

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B {1,2,3,6} = D
{1,2,3,6} = D {1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B {1,2,3,6} = D
{1,2,3,6} = D {1,2,3,4} = B

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B {1,2,3,6} = D
{1,2,3,6} = D {1,2,3,4} = B {1,2,3} = A

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

n siguientepos(n)
1a {1,2,3}
2b {1,2,3}
3a {4}
4b {5}
Estado a b
5b {6}
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
6# ∅
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B {1,2,3,6} = D
{1,2,3,6} = D {1,2,3,4} = B {1,2,3} = A

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

Estado a b
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B {1,2,3,6} = D
{1,2,3,6} = D {1,2,3,4} = B {1,2,3} = A

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

Estado a b
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B {1,2,3,6} = D
{1,2,3,6} = D {1,2,3,4} = B {1,2,3} = A

Fernando López Ostenero (flopez@lsi.uned.es)


TRANSFORMACIÓN
E.R. → AFD

Ejemplo: (a|b)*abb → (a|b)*abb#

b
A a
B b
C D
a
b a a

Estado a b
{1,2,3} = A {1,2,3,4} = B {1,2,3} = A
{1,2,3,4} = B {1,2,3,4} = B {1,2,3,5} = C
{1,2,3,5} = C {1,2,3,4} = B {1,2,3,6} = D
{1,2,3,6} = D {1,2,3,4} = B {1,2,3} = A

Fernando López Ostenero (flopez@lsi.uned.es)


PROCESADORES DE LENGUAJES I

ANÁLISIS LÉXICO

Transformación ER → AFD

Fernando López Ostenero (flopez@lsi.uned.es)

También podría gustarte