You are on page 1of 3

-

ANALIZADOR LEXICO -

Anlisis lexicogrfico, tambin denominado abreviadamente anlisis lxico. Las tcnicas utilizadas para construir analizadores lxicos tambin se pueden aplicar a otras reas como, por ejemplo, a lenguajes de consulta y sistemas de recuperacin de informacin. En cada aplicacin, el problema de fondo es la especificacin y diseo de programas que ejecuten las acciones activadas por palabras que siguen ciertos patrones dentro de las cadenas a reconocer. Como la programacin dirigida por patrones est ampliamente extendida y resulta de indudable utilidad, existen numerosos metalenguajes que permiten establecer pares de la forma patrn-accin, de manera que la accin se ejecuta cada vez que el sistema se encuentra una serie de caracteres cuya estructura coincide con la del patrn. El objetivo de este analizador es el de aceptar o rechazar el lxico ( las palabras y / o caracteres) que presenta el programa fuente, comprobando si pertenece o no al lenguaje que se intenta analizar. Si lo acepta entrega al analizador sintctico unidades sintcticas con un determinado significado sintctico y semntico. Ejemplo en lenguaje natural: Juan escribe cartas . En castellano se rechazara por no estar en el lxico del idioma, pero el resto de las palabras seran aceptadas entregando al analizador sintctico: sujeto, verbo, complemento directo que concuerda con una estructura gramatical de una frase u oracin en castellano. As pues el anlisis lxico se realiza en el nivel de los caracteres y su misin es a partir de stos, comparndolos con patrones, que pueden ser especificados mediante expresiones regulares, reconocer el conjunto de caracteres (lexemas) que constituyen una clase de palabra, que ser representada por un smbolo que constituir una unidad sintctica ( componente lxico, token), entregando al analizador sintctico dicha unidad sintctica o componente lxico, habitualmente con informacin adicional (atributos). La entrada del analizador lxico podemos definirla como una secuencia de caracteres, que pueda hallarse codificada segn cualquier estndar: ASCII (American Standard Code for Information Interchange), EBCDIC (Extended Binary Coded Decimal Interchange Code), Unicode, etc. El analizador lxico divide esta secuencia en palabras con significado propio y despus las convierte a una secuencia de terminales desde el punto de vista del analizador sintctico. Dicha secuencia es el punto de partida para que el analizador sintctico construya el rbol sintctico que reconoce la correccin de la estructura gramatical de la fuente.

El analizador lxico reconoce las palabras en funcin de una gramtica regular de manera que el alfabeto de dicha gramtica son los distintos caracteres del juego de caracteres del ordenador sobre el que se trabaja (que forman el conjunto de smbolos terminales), mientras que sus no terminales son las clases de cadenas lxicas en que se integran las distintas secuencias de caracteres. Cada no terminal de la gramtica regular del anlisis lxico, representado por un componente lxico o token, es considerado como un terminal de la gramtica de contexto libre con la que trabaja el analizador sintctico, de manera que la salida de alto nivel (no terminales) de la fase lxica supone la entrada de bajo nivel (terminales) de la fase sintctica. FUNCIONES Funcin principal: Leer carcter por carcter de la entrada y elaborar como salida una secuencia de componentes lxicos que utiliza el analizador sintctico para hacer el anlisis. Funciones secundarias: Manejar el archivo fuente, es decir, abrirlo, leer sus caracteres y cerrarlo. Eliminar comentarios y espacios en blanco (espacios, tabuladores y fin de lnea). Relacionar los mensajes de error con las lneas del programa fuente. Introducir los identificadores en la tabla de smbolos.

RAZONES PARA DIVIDIR LA FASE DE ANLISIS LEXICO DE LA FASE DE ANLISIS SINTCTICO. Diseo ms sencillo: los smbolos que trata el analizador lxico se describen con una gramtica ms simple (gramtica regular) que la del analizador sintctico (gramtica libre de contexto). Mejora la eficiencia: gran parte del tiempo de compilacin se consume en la lectura y exploracin de caracteres. Con tcnicas especializadas de manejo de buffers se puede mejorar significativamente el rendimiento del compilador. Mejora la portabilidad: se pueden tener varias versiones del analizador lxico una para distintos cdigos (EBCDID, ASCII, etc.), con el mismo analizador sintctico. COMPONENTES LXICOS, PATRONES Y LEXEMAS. Componente lxico: smbolo terminal de la gramtica del lenguaje fuente. Patrn: el conjunto de cadenas de la entrada se describe mediante una regla llamada patrn asociada al componente lxico. Un patrn es una regla que describe el conjunto de lexemas. Para describir los patrones se utiliza la notacin de expresiones regulares. Lexema: secuencia de caracteres en el programa fuente con lo que concuerda el patrn para el componente lxico. Los lexemas para el componente lxico que

concuerdan con el patrn representan cadenas de caracteres en el programa fuente que se pueden tratar como unidad lxica.