Un analizador lxico y/o analizador lexicogrfico (en ingls scanner) es la primera fase
de un compilador consistente en un programa que recibe como entrada el cdigo fuente de
otro programa (secuencia de caracteres) y produce una salida compuesta
de tokens (componentes lxicos) o smbolos. Estostokens sirven para una posterior etapa
del proceso de traduccin, siendo la entrada para el analizador sintctico (en
ingls parser).
La especificacin de un lenguaje de programacin a menudo incluye un conjunto de reglas
que definen el lxico. Estas reglas consisten comnmente enexpresiones regulares que
indican el conjunto de posibles secuencias de caracteres que definen un token o lexema.
En algunos lenguajes de programacin es necesario establecer patrones para caracteres
especiales (como el espacio en blanco) que la gramtica pueda reconocer sin que
constituya un token en s.
Anlisis[editar]
Esta etapa est basada usualmente en una mquina de estados finitos. Esta mquina
contiene la informacin de las posibles secuencias de caracteres que puede conformar
cualquier token que sea parte del lenguaje (las instancias individuales de estas secuencias
de caracteres son denominados lexemas). Por ejemplo, un token de
naturaleza entero puede contener cualquier secuencia de caracteres numricos.
Definiciones.
Tokens:
Atributos:
Informacin adicional que tiene el token, de utilidad
para el anlisis sintctico y semntico.
Componentes lxicos (tokens):
unidad mnima de informacin que significa algo a la
Otras Funciones:
Mejora la eficiencia:
Mejora la portabilidad:
DO 5 I=1.25
DO 5 I=1,25
lxico
(token).
operadores aritmticos
operadores
relacionales
operadores lgicos
operador de asignacin
identificadores
constantes
cadenas
literales
signos de puntuacin
libreras
Lexema:
Representan cadenas de caracteres en el programa
fuente que se pueden tratar juntos como una unidad
lxica. Un lexema es una secuencia de caracteres
en el programa fuente con la que concuerda el
patrn
para
un
componente
lxico.
Patrn:
Regla que describe el conjunto de lexemas que
pueden representar a un determinado componente
de
los
componentes
lxicos:
Errores
lxicos
blanco,
comentarios
y
dems
informacin
innecesaria se elimina del programa fuente. Tambin
se comprueba que los smbolos del lenguaje
(palabras clave, operadores,...) se han escrito
correctamente.
Como la tarea que realiza el analizador lxico es un
caso especial de coincidencia de patrones, se
necesitan los mtodos de especificacin y
reconocimiento de patrones, y estos mtodos son
principalmente las expresiones regulares y los
autmatas finitos. Sin embargo, un analizador lxico
tambin es la parte del traductor que maneja la
entrada del cdigo fuente, y puesto que esta entrada
a menudo involucra un importante gasto de tiempo,
el analizador lxico debe funcionar de manera tan
eficiente
como
sea
posible.
Son pocos los errores simplemente en el nivel lxico
ya que tiene una visin muy restringida de un
programa fuente. El analizador lxico debe devolver
el componente lxico de un identificador y dejar a
otra
fase
se
ocupe
de
los
errores.
Suponga que una situacin en la cual el analizador
lxico no puede continuar porque ninguno de los
patrones concuerda con un prefijo de la entrada. Tal
vez la estrategia de recuperacin ms sencilla sea
recuperacin EN MODO PANICO (este mtodo de
2.
Generadores
de
analizadores
Lxicos