Clase4: Transformación desde Expresión regular a Autómata finito determinista

Post on 08-Jul-2015

7.046 views 1 download

Transcript of Clase4: Transformación desde Expresión regular a Autómata finito determinista

DESDE LAS EXPRESIONES REGULARES HASTA LOS AFD

AFND

AFD

EXPRESIÓN REGULAR

ER - AFND

• CONCATENACIÓN (a.b)

• Selección (a|b)

1 2a

3 4b

1 2a

3 4bƐ

1 2a

3 4b

1 2a

3 4b

Ɛ5

Ɛ

Ɛ

ER - AFND

• Repetición a*

1 2a

0 3

Ɛ

Ɛ

Ɛ

Ɛ

DESDE UN AFND - AFD

Algoritmo

Ejemplo

Cerradura Ɛ de un estado: El estado mismo y los estados que conduce una transición Ɛ

1 2a

0 3

Ɛ

Ɛ

Ɛ

Ɛ

Ejemplo

Construcción de subconjuntos : 1. El estado inicial es el mismo, 2. Cual de los estados conduce con un carácter

1 hacia el 2 = {1,2,3}3. Desde los estados de {1,2,3} conducen con “a” hacia sí mismo4. El estado de aceptación contiene el estado de aceptación del AFND

1 2a

0 3

Ɛ

Ɛ

Ɛ

Ɛ

a

a

Ejercicio

2 5a

6 7

b

Ɛ8

Ɛ

Ɛ

43Ɛ

a

Estado (cerradura) a b

{1} = {1,2,6}=A Mover(A, a)={3,7} Mover(A, b)={}

{3,7} = {3,4,7,8}=B Mover(B, a)={} Mover(B, b)={5}

{5} = {5,8} = C Mover(C, a)={} Mover(C, b)={}

Estado (cerradura)

a b

A B

B (aceptación) C

C (aceptación)

A CBba

Ejercicio

• x (x|y)*x

1

4x

5 6

2x

Ɛ7

Ɛ

Ɛ

3

8

Ɛ

y

Ɛ

Ɛ Ɛ

Ɛ

0 9x

Estado (cerradura) X Y

{0} = {0}=A Mover(A, x)={1} Mover(A, y)={}

{1} = {1,2,3,5,8}=B Mover(B, x)={4,9} Mover(B, y)={6}

{4,9} = {4,7,8,2,3,5} = C Mover(C, x)={4,9} Mover(C, y)={6}

{6} = {6, 7,8,2,3,5} = D Mover(C, x)={4,9} Mover(C, y)={6}

Ejercicio

• x (x|y)*xEstado (cerradura) X Y

{0} = {0}=A Mover(A, x)={1} Mover(A, y)={}

{1} = {1,2,3,5,8}=B Mover(B, x)={4,9} Mover(B, y)={6}

{4,9} = {4,7,8,2,3,5,9} = C Mover(C, x)={4,9} Mover(C, y)={6}

{6} = {6, 7,8,2,3,5} = D Mover(C, x)={4,9} Mover(C, y)={6}

Estado X Y

A B

B C D

C C D

D C D

XCA B

X

D

Y

X

YX

Y

ANÁLISIS SINTÁCTICO

ANÁLISIS SINTÁCTICO

• Su sintaxis se determina por: Reglas gramaticales de una gramática libre de contexto

• Operaciones son similares a las expresiones regulares. Con la diferencia de que se debe implementar la recursidad (ciclos repetitivos)

• Estructura de datos: árboles

• Algoritmo: Análisis sintáctico ascendente y descendente

Gramáticas libres de contexto

• Es una especificación para la estructura sintáctica de un lenguaje de programación

• Similar a la estructura léxica reflejada en la expresión regular, solamente que la gramáticaincluye recursividad