Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Implementacin - AL
AFN
Expresiones
Regulares
AFD
Especificacin
Lxica
Implementacin
AFD
Implementacin - AL
El AL debe ir leyendo carcter por carcter del archivo de entrada y
guardar los caracteres ledos en un buffer.
Cuando se encuentra un carcter que no le sirve para construir un
token vlido, para el scaneo y enva los caracteres acumulados al AS.
En este momento el AL queda en espera de una nueva peticin del AS.
Lleva a cabo la reinicializacin del buffer de lectura.
Repite este proceso hasta que llega a fin del archivo de entrada.
Implementacin - AL
Pasos =>
IMPORTANTE:
Un AL debe aplicar la regla de la
cantidad mxima (leer el token ms
largo posible). En caso de que esa
lectura no lleve a un token vlido, debe
retroceder al menos largo que sea
vlido y volver a leer los desechados
para el siguiente token.
Implementacin - AL
Para la implementacin de un AL se utilizan AFD como mquinas de
estados (llamados diagramas de transiciones DT).
Diferencias entre un AFD y un DT:
El AFD slo verifica si una secuencia de caracteres pertenece o no al lenguaje.
Un DT debe leer la secuencia hasta completar el token y dejar la entrada preparada para el
siguiente token.
Implementacin - AL
Un AFD (o un DT) puede ser implementado usando una tabla T
(bidimensional)
Una dimensin para representar los estados (filas)
Otra dimensin para los smbolos de entrada (columnas)
Para cada transicin
defina T[i, a] = k
Implementacin - AL
Tambin es posible para un AFN
Implementacin - AL
Cmo combinar todo para implementar un DT?
Implementacin - AL
Ejemplo: Crear un analizador lxico para un lenguaje que reconoce
nmeros enteros sin signo, la suma, el incremento y el producto:
Las expresiones regulares son:
Digito = [0-9]
Entero = Digito+
Suma = +
Producto = *
Incremento = ++:
Implementacin - AL
Implementacin - AL
Estado
Digito
Otro
Token
Retroceso
q0
q5
q2
q1
Error
q1
PRODUCTO
q2
q3
q4
q3
q3
q3
SUMA
q4
INCREMENTO
q5
q5
q6
q6
q6
q6
ENTERO
Implementacin - AL
En el ejemplo, ejecute las siguientes entradas:
25+5
25+5*12++
25+5*12++5**3/8
Implementacin - AL
Recuerde que:
Hay dos casos en que hay que decidir entre ms de un token
El caso en que hayan dos lexemas, uno ms largo que otro, entonces el autmata debe
decidir por el token correspondiente al lexema ms largo.
El caso de que un mismo lexema pueda asociarse a ms de un token, entonces se debe
elegir el primero que se encuentre en la especificacin.