Clase4: Transformación desde Expresión regular a Autómata finito determinista
-
Upload
mvagila -
Category
Technology
-
view
7.041 -
download
1
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
0Ɛ
Ɛ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
1Ɛ
Ɛ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