Categories: All - compilador - patrón - tokens - errores

by Anderson Cristancho 7 years ago

1392

Analizador lexico

El análisis léxico es una fase crucial del proceso de compilación, encargada de transformar el programa fuente en una lista ordenada de tokens. Estos tokens son secuencias de caracteres que cumplen con patrones específicos, como identificadores y palabras reservadas.

Analizador lexico

Aspectos del análisis Léxico

Mejora la eficacia

Diseño sencillo

Mejora la Portabilidad

Topic flotante

Componenetes léxico (tokens)

Ejemplo

Patrón

Reglas de describen un conjunto de Lexema
Descripción formal e informal de un Lexema

Lexema

Secuencia de caracteres que concuerdan con un patrón
Son las cadenas que se toman del codigo, concordando con el patron

Token

Símbolos terminales de una gramatica
Varios signos pueden formar el token
Identificadores, palabras reservadas
Es una forma que debe cumplír un determinado lexema, es un conjunto de caracteres con significado colectivo
Nombre que se leda al identificado: ID

Funciones

Reconocimiento y ejecución de las directivas de compilación

Contabilizar el número de columnas y lineas para emitir el mensaje de error

Inclusión de fichero: #include

Eliminar comentarios, espacios en blanco

Manejo del fichero de entrada del programa fuente

Gestionar posibles errores
Cerrarlo
Leer sus caracteres
Abrirlo

Guardar información necesaria de los tokens para el proceso de compilación

Detección de errores Léxicos

Interactuar con el analizador sintáctico, enviándole los tokens generados

Generar lista ordenada de tokens a partir de caracteres de entrada

Corresponde a la Primera Fase del Compilador

Recibe el Programa fuente

Reconoce los tokens

Analizador léxico

Conceptos básicos

Autómata finito
Grafo que acepta palabras válidas para un lenguaje y rechaza las incorrectas
Definición regular
Da nombre a una expresión regular, es igual a un componente lexico
Palabra reservada
Tiene un significado unico en el programa y no puede utilizarse
Expresión regular
Reconoce lenguaje regular, describe un conjunto de cadenas de forma general
Centinela
Carácter especial que no forma parte del programa y marca el final del buffer de entrada