Definición de analizador léxico
El analizador léxico es una herramienta de un compilador
que nos ayuda a leer los caracteres de
entrada para formar componentes y así poder identificarlos y pasar la información
a analizadores sintáctico.
Los componentes léxicos
representan:
Palabras reservadas:
if, while, do ect.
Operadores. =+-*/== > <!=..
Constantes numéricas
Constantes de caracteres
¿Cuál es su función?
Construye elementos léxicos llamados patrones que serán
utilizados posteriormente por una analizador sintáctico. Un patrón es una pareja ordenada compuesta por un tokens y un
lexema.
Un lexema es la secuencia de caracteres que coinciden con
tokens.
Un analizador léxico aísla el analizador sintáctico de la representación
de lexemas de los componentes léxicos.
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.
Otras Funciones:
- Manejo del fichero de
entrada del programa fuente: abrirlo, leer sus caracteres, cerrarlo y
gestionar posibles errores de lectura.
- Eliminar comentarios,
espacios en blanco, tabuladores y saltos de línea (caracteres no validos
para formar un token).
- Inclusión de ficheros: #
include...
- La expansión de macros y
funciones in line: # define...
- Contabilizar el número de
líneas y columnas para emitir mensajes de error.
- Reconocimiento y ejecución
de las directivas de compilación (por ejemplo, para depurar u optimizar el
código fuente).
SALIDA
DEL ANALIZADOR LÉXICO
A la salida del
analizador léxico es un conjunto de tokens
Ejemplo:
Identificadores
Enteros
Palabras reservadas
Espacios en blanco
Paréntesis
Definiciones.
Tokens:
- Símbolos terminales de una gramática
o Identificadores,
palabras reservadas, operadores,...
o Varios
signos pueden forman el mismo token
Atributos:
Información adicional que tiene el token, de utilidad para el análisis
sintáctico y semántico.
Componentes léxicos (tokens):
unidad mínima de información que significa algo a la hora de compilar; concepto
de palabra; las fases de un lenguaje constan de cadenas de componentes léxicos.
Lexema:
Una secuencia de caracteres de entrada que comprenden un solo componente léxico
se llama lexema; cadena de caracteres que extrae el componente abstracto del
componente léxico.
Patrón:
Descripción de la forma que han de tomarlos lexemas para ajustarse a un
componente léxico.