IDENTIFICACIÓN DE LEXEMAS Y COMPONENTES LÉXICOS A PARTIR DE UN LENGUAJE.
Enviado por arnoldcugita • 16 de Marzo de 2015 • 868 Palabras (4 Páginas) • 2.170 Visitas
IDENTIFICACIÓN DE LEXEMAS Y COMPONENTES LÉXICOS A PARTIR DE UN LENGUAJE.
Un analizador léxico es un módulo destinado a leer caracteres del archivo de entrada, donde se encuentra la cadena a analizar, reconocer subcadenas que correspondan a símbolos del lenguaje y retornar los tokens correspondientes y sus atributos. Escribir analizadores léxicos eficientes “a mano” puede resultar una tarea tediosa y complicada, para evitarla se han creado herramientas de software los generadores de analizadores léxicos que generan automáticamente un analizador léxico a partir de una especificación provista por el usuario.
Análisis léxico (Scanner)
La fase de rastreo (scanner), tiene las funciones de leer el programa fuente como un archivo de caracteres y dividirlo en tokens.
Los tokens son las palabras reservadas de un lenguaje, secuencia de caracteres que representa una unidad de información en el programa fuente. En cada caso un token representa un cierto patrón de caracteres que el analizador léxico reconoce, o ajusta desde el inicio de los caracteres de entrada. De tal manera es necesario generar un mecanismo computacional que nos permita identificar el patrón de transición entre los caracteres de entrada, generando tokens, que posteriormente serán clasificados. Este mecanismo es posible crearlo a partir de un tipo específico de máquina de estados llamado autómata finito.
Función del analizador léxico:
Es la primera fase de un compilador. Su principal función consiste en leer la secuencia de caracteres del programa fuente, carácter a carácter, y elaborar como salida la secuencia de componentes léxicos que utiliza el analizador sintáctico.
El analizador sintáctico emite la orden al analizador léxico para que agrupe los caracteres y forme unidades con significado propio llamados componentes léxicos (tokens).
Los componentes léxicos representan:
Palabras reservadas: if, while, do
Identificadores: variables, funciones, tipos definidos por el usuario, etiquetas
Operadores: =, >, =, <=, +, *
Símbolos especiales: ( ), { }
Constantes numéricas: literales que representan valores enteros y flotantes.
Constantes de carácter: literales que representan cadenas de caracteres.
El analizador léxico opera bajo petición del analizador sintáctico devolviendo un componente léxico conforme el analizador sintáctico lo va necesitando para avanzar en la gramática. Los componentes léxicos son los símbolos terminales de la gramática. Suele implementarse como una subrutina del analizador sintáctico. Cuando recibe la orden “obtén el siguiente componente léxico”, el analizador léxico lee los caracteres de entrada hasta identificar el siguiente componente léxico.
Además el analizador léxico es responsable de:
Manejo de apertura y cierre de archivo, lectura de caracteres y gestión de posibles
Errores de apertura.
Eliminar comentarios, espacios en blanco, tabuladores y saltos de línea.
Inclusión de archivos y macros.
Contabilizar número de líneas y columnas para emitir mensajes de error.
Una de las ventajas de separar el análisis léxico y análisis sintáctico es que facilita la transportabilidad del traductor si se decide realizar cambios posteriores, por ejemplo cambiar las etiquetas begin-end por llaves de apertura y cierre { }.
El papel del analizador léxico
La función primordial es agrupar caracteres de la entrada en tokens.
Estos
...