Anda di halaman 1dari 3

FUNCIONES DEL ANALIZADOR LEXICO

Una de la funciones del analizador lxico es leer la secuencia de


caracteres del programa fuente, carcter a carcter, y los agrupa para
formar unidades con significado propio.
Los tokens son componentes lxicos representan palabras reservadas,
operadores, identificadores, smbolos especiales, constantes numricas
y de caracteres. El analizador lxico opera bajo peticin del analizador
sintctico devolviendo un componente lxico conforme el analizador
sintctico lo va necesitando para avanzar en la gramtica.
Algunas de las funciones secundarias del analizador lxico son:
-

Manejo del fichero de entrada del programa fuente: abrirlo, leer


sus caracteres, cerrarlo y gestionar posibles errores de lectura.
La expansin de macros y funciones inline: # define ...
Reconocimiento y ejecucin de las directivas de compilacin (por
ejemplo, para depurar u optimizar el cdigo fuente).

El patrn es una regla que genera la secuencia de caracteres que puede


representar a un determinado componente lxico.
El lexema cadena de caracteres que concuerda con un patrn que
describe un componente lxico.
Un componente lxico puede tener uno o infinitos lexemas. Los
componentes lxicos se suelen definir como un tipo enumerado. Se
codifican como enteros. Tambin se suele almacenar la cadena de
caracteres que se acaba de reconocer (el lexema), que se usara
posteriormente para el anlisis semntico.
ESPECIFICACIN DE LOS COMPONENTES LXICOS: EXPRESIONES
REGULARES.

Los componentes lexicos se especifican haciendo uso de expresiones


regulares. Sus tres operaciones bsicas son concatenacin, repeticin y
alternativas. Los AFD se pueden utilizar para reconocer las expresiones
regulares asociadas a los componentes lexicos.
ASPECTOS PRCTICOS EN LA IMPLEMENTACIN DE UN ANALIZADOR
LXICO

Dentro de los aspectos prcticos se encuentran los siguientes:

Principio de mxima longitud: Aqu se da prioridad al componente


lxico de mxima longitud. Por ejemplo: <> se interpreta como el
operador \distinto de", en vez de \menor que" y \mayor que".
Palabras reservadas versus identificadores: Un lenguaje de
programacin puede tener del orden de 50 palabras reservadas.

Entrada de los identificadores en la Tabla de Smbolos: En


lenguajes sencillos con solo variables globales y declaraciones, es
normal implementar el scanner para que introduzca los
identificadores en la Tabla de Smbolos conforme los va
reconociendo, si es que no han sido ya introducidos.

Gestin del buffer de entrada: El proceso de lectura de los


caracteres de la entrada y formar los componentes lexicos es lo
ms costoso en tiempo en el proceso de traduccin. Es importante
implementarlo eficientemente.
TRATAMIENTO DE ERRORES LEXICOS

Los errores lexicos se detectan cuando el analizador lxico intenta


reconocer componentes lexicos y la cadena de caracteres de la
entrada no encaja con ningn patrn.
Algunos de los errores lexicos tpicos son:
-

Nombre ilegales de identificadores: un nombre contiene caracteres


invlidos.
Nmeros incorrectos: un nmero contiene caracteres invlidos o
no est formado correctamente.
Fin de archivo: Se detecta un fin de archivo a la mitad de un
componente lxico. Los errores lexicos se deben a descuidos del
programador.
GENERADORES AUTOMATICOS DE ANALIZADORES LEXICOS: LEX

Todos los analizadores lexicos realizan la misma funcin (se


implementan de igual forma) excepto en los tokens que
reconocen, las expresiones regulares que los definen. Resulta
entonces natural y una forma de ahorrar esfuerzo, utilizar
generadores automticos de analizadores lexicos. Estos
generadores solo necesitan conocerla especificacin de tokens a
reconocer.
Los analizadores lexicos (el AFD) se pueden implementar a mano
para reconocer los componentes lexicos de un determinado
lenguaje. Este opcin tiene sentido solo cuando el aprender a

utilizar una determinada herramienta nos llevara ms tiempo que


el hacerlo nosotros a mano.
Un fichero Lex consiste de tres partes: definiciones, reglas y
rutinas auxiliares, separadas por %%.

Anda mungkin juga menyukai