Cómputo III



Análisis Léxico
Mediante Autómatas

ü  Analizador Léxico -> Código Fuente => Código Tokenizado

ü  Analizador Sintáctico -> Parsed Code

ü  Analizador Semántico => Código Calificado

ü  Generador de Código -> Código Objeto (Binario)

ü  Optimizador => Código Final

Análisis Léxico:
Es el proceso mediante el cual se escanea una cadena o secuencia de caracteres que componen un bloque de código fuente y se valida su correcta escritura.




Error




|


Cadena
à
Analizador Léxico
à
Validación


Funcionamiento del Analizador Léxico



Análisis

Validación

5+3
à
DigitoOperadorDigito
à
þ  Correcto





5+a
Análisis

Validación


à
DigitoOperadorCaracter
à
ý  Incorrecto





Limitantes del Analizador Léxico

Ø  Alcance Limitado:
No es capaz de reconocer todos los tipos de errores

Ø  Análisis de Símbolos:
Detecta solo tokens no válidos o entidades mal formadas

Ø  Sin Contexto: No es capaz de detectar tokens fuera de lugar

Proceso

ü  Obtener la Expresión Regular

ü  Convertir la Expresión Regular a un AFN

ü  Convertir el AFN a un AFD

ü  Simplificar el AFD y programarlo


Método de Thompson (Convertir ER a AFN)

Definición:
Define un conjunto de reglas para convertir una expresión regular en un autómata finito no determinista.

Procesar carácter “r”:

Procesar concatenación “rs”:

Procesar alternativas “r|s”:

Procesar cerradura “r+”:

Procesar cerradura de Kleene “r*”:


Ejemplo: ER= (a+)(b*|cd)



Ejemplo: Operaciones

L= dod (digitooperadordigito)
ER= ([0-9])+((\+|\-|\*|\/)([0-9]))+
















Guía ER a AFN



Solución ER a AFN



Guía AFN a AFD



Solución AFN a AFD

Programa Analizador Léxico


Investigación Final


Reporte de Investigación Final