Descripción: Un analizador léxico y/o analizador lexicográfico (en inglés scanner) es la primera fase de un compilador consistente en un programa que recibe como entrada el código fuente de otro programa (secue...
Descripción completa
creacion de un analizador lexico en javaDescripción completa
LÉXICO DE UNMSM
lexico
Descripción completa
ApuntesDescripción completa
lexicoDescripción completa
LEXICO INTERNODescripción completa
Descripción completa
Descripción completa
Full description
ENSAYO
FUNCIONES DEL ANALIZADOR LEXICO
Una Una de la func funcio ione nes s del del anal analiz izad ador or léxi léxico co es leer leer la secu secuen enci cia a de caracteres del programa fuente, carácter a carácter, y los agrupa para formar unidades con signicado propio. Los tokens son componentes léxicos representan palabras reservadas, operadores, identicadores, símbolos especiales, constantes numéricas y de caracteres. l analizador léxico opera ba!o petici"n del analizador sintácti sintáctico co devolvie devolviendo ndo un compone componente nte léxico léxico conform conforme e el analiza analizador dor sintáctico lo va necesitando para avanzar en la gramática. #lgunas de las funciones secundarias del analizador léxico son$ % % %
&ane &ane!o !o del c'er c'ero o de entra entrada da del prog progra rama ma fuent fuente$ e$ abrir abrirlo lo,, leer leer sus caracteres, cerrarlo y gestionar posibles errores de lectura. La expa expans nsi"n i"n de de macr macros y funci funcion ones es inlin inline$ e$ ( den dene e ... )econo econocim cimien iento to y e!ecuc e!ecuci" i"n n de las las dire directi ctiva vas s de compil compilaci aci"n "n *por *por e!emplo, para depurar u optimizar el c"digo fuente+.
l patr"n es una regla ue genera la secuencia de caracteres ue puede representar a un determinado componente léxico. l lex lexema cadena cadena de carac caracter teres es ue ue concu concuer erda da con un patr"n patr"n ue describe un componente léxico. Un comp compo onent nente e léxi léxico co pued puede e tene tenerr uno uno o inn innit itos os lex lexema emas. Los compo compone nente ntes s léxi léxicos cos se suelen suelen deni denirr como como un tipo tipo enume enumerad rado. o. -e codic codican an como como enter enteros. os. ambié ambién n se suele suele almace almacenar nar la caden cadena a de cara caract cter eres es ue ue se acab acaba a de recon econoc ocer er *el *el lex lexema+ ema+,, ue ue se usar usara a posteriormente para el análisis semántico. ESPECIFICACIÓN DE LOS COMPONENTES LÉXICOS: EXPRESIONES REGULARES.
Los componentes lexicos se especican 'aciendo uso de expresiones regulares. -us tres operaciones básicas son concatenaci"n, repetici"n y alternativas. Los #/0 se pueden utilizar para reconocer las expresiones regulares asociadas a los componentes lexicos. ASPECTOS PRÁCTICOS EN LA IMPLEMENTACIÓN DE UN ANALIZADOR LÉXICO
0entro de los aspectos prácticos se encuentran los siguientes$
%
%
1rincipio de máxima longitud$ #uí se da prioridad al componente léxico de máxima longitud. 1or e!emplo$ 23 se interpreta como el operador 4distinto de5, en vez de 4menor ue5 y 4mayor ue5. 1alabras reservadas versus identicadores$ Un lengua!e de programaci"n puede tener del orden de 67 palabras reservadas.
%
ntrada de los identicadores en la abla de -ímbolos$ n lengua!es sencillos con solo variables globales y declaraciones, es normal implementar el scanner para ue introduzca los identicadores en la abla de -ímbolos conforme los va reconociendo, si es ue no 'an sido ya introducidos.
%
8esti"n del bu9er de entrada$ l proceso de lectura de los caracteres de la entrada y formar los componentes lexicos es lo más costoso en tiempo en el proceso de traducci"n. s importante implementarlo ecientemente. TRATAMIENTO DE ERRORES LEXICOS
Los errores lexicos se detectan cuando el analizador léxico intenta reconocer componentes lexicos y la cadena de caracteres de la entrada no enca!a con ning:n patr"n. #lgunos de los errores lexicos típicos son$ % % %
;ombre ilegales de identicadores$ un nombre contiene caracteres inválidos. ;:meros incorrectos$ un n:mero contiene caracteres inválidos o no está formado correctamente. /in de arc'ivo$ -e detecta un n de arc'ivo a la mitad de un componente léxico. Los errores lexicos se deben a descuidos del programador. GENERADORES AUTOMATICOS DE ANALIZADORES LEXICOS: LEX
odos los analizadores lexicos realizan la misma funci"n *se implementan de igual forma+ excepto en los tokens ue reconocen, las expresiones regulares ue los denen. )esulta entonces natural y una forma de a'orrar esfuerzo, utilizar generadores automáticos de analizadores lexicos. stos generadores solo necesitan conocerla especicaci"n de tokens a reconocer. Los analizadores lexicos *el #/0+ se pueden implementar a mano para reconocer los componentes lexicos de un determinado lengua!e. ste opci"n tiene sentido solo cuando el aprender a
utilizar una determinada 'erramienta nos llevara más tiempo ue el 'acerlo nosotros a mano. Un c'ero Lex consiste de tres partes$ deniciones, reglas y rutinas auxiliares, separadas por <<.