Analizador léxico

Conceptos básicos

Centinela

Carácter especial que no forma parte del programa y marca el final del buffer de entrada

Expresión regular

Reconoce lenguaje regular, describe un conjunto de cadenas de forma general

Palabra reservada

Tiene un significado unico en el programa y no puede utilizarse

Definición regular

Da nombre a una expresión regular, es igual a un componente lexico

Autómata finito

Grafo que acepta palabras válidas para un lenguaje y rechaza las incorrectas

Corresponde a la Primera Fase del Compilador

Reconoce los tokens

Recibe el Programa fuente

Funciones

Generar lista ordenada de tokens a partir de caracteres de entrada

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

Detección de errores Léxicos

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

Manejo del fichero de entrada del programa fuente

Abrirlo

Leer sus caracteres

Cerrarlo

Gestionar posibles errores

Eliminar comentarios, espacios en blanco

Inclusión de fichero: #include

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

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

Componenetes léxico (tokens)

Token

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

Símbolos terminales de una gramatica

Identificadores, palabras reservadas

Varios signos pueden formar el token

Lexema

Secuencia de caracteres que concuerdan con un patrón

Son las cadenas que se toman del codigo, concordando con el patron

Patrón

Reglas de describen un conjunto de Lexema

Descripción formal e informal de un Lexema

Ejemplo

Topic flotante

Topic flotante

Aspectos del análisis Léxico

Mejora la Portabilidad

Diseño sencillo

Mejora la eficacia