0 évaluation0% ont trouvé ce document utile (0 vote)
66 vues4 pages
El documento describe las funciones del analizador léxico. El analizador léxico reconoce palabras y las categoriza en componentes léxicos que utiliza el analizador sintáctico. Separar el análisis léxico del sintáctico simplifica el diseño al permitir un analizador sintáctico más simple.
El documento describe las funciones del analizador léxico. El analizador léxico reconoce palabras y las categoriza en componentes léxicos que utiliza el analizador sintáctico. Separar el análisis léxico del sintáctico simplifica el diseño al permitir un analizador sintáctico más simple.
El documento describe las funciones del analizador léxico. El analizador léxico reconoce palabras y las categoriza en componentes léxicos que utiliza el analizador sintáctico. Separar el análisis léxico del sintáctico simplifica el diseño al permitir un analizador sintáctico más simple.
El analizador lxico reconoce las palabras en funcin de una
gramtica regular de manera que el alfabeto G 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 categoras lxicas en que se integran las distintas secuencias de caracteres. Cada no terminal o categora lxica de la gramtica regular del anlisis lxico 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. En el caso de Lex, por ejemplo, la gramtica regular se expresa mediante expresiones regulares.
Funciones del analizador lxico
El analizador lxico es la primera fase de un compilador. Su principal funcin consiste en leer los caracteres de entrada y elaborar como salida una secuencia de componentes lxicos que utiliza el analizador sintctico para hacer el anlisis. Esta
La fase de anlisis lxico se halla bajo el control del anlisis sintctico.
Normalmente se implementa como una funcin de ste interaccin suele aplicarse convirtiendo al analizador lxico en una subrutina o corrutina del analizador sintctico. Recibida la orden Dame el siguiente componente lxicodel analizador sintctico, el lxico lee los caracteres de entrada hasta que pueda identificar el siguiente componente lxico, el cual devuelve al sintctico segn el formato convenido (ver figura 2.2). Adems de esta funcin principal, el analizador lxico tambin realiza otras de gran importancia, a saber:
Eliminar los comentarios del programa.
Eliminar espacios en blanco, tabuladores, retorno de carro, etc, y en
general, todo aquello que carezca de significado segn la sintaxis del
lenguaje.
Reconocer los identificadores de usuario, nmeros, palabras
reservadas del lenguaje, etc., y tratarlos correctamente con respecto a la tabla de smbolos (solo en los casos en que este analizador deba tratar con dicha estructura).
Llevar la cuenta del nmero de lnea por la que va leyendo, por si se
produce algn error, dar informacin acerca de dnde se ha producido.
Avisar de errores lxicos. Por ejemplo, si el carcter @ no pertenece
al lenguaje, se debe emitir un error.
Tambin puede hacer funciones de preprocesador.
Necesidad del analizador lxico
Un buen profesional debe ser capaz de cuestionar y plantearse todas las decisiones de diseo que se tomen, y un asunto importante es el porqu se separa el anlisis lxico del sintctico si, al fin y al cabo, el control lo va a llevar el segundo. En otras palabras, por qu no se delega todo el procesamiento del programa fuente slo en el anlisis sintctico, cosa perfectamente posible (aunque no plausible como veremos a continuacin), ya que el sintctico trabaja con gramticas de contexto libre y stas engloban a la regulares. A continuacin estudiaremos algunas razones de esta separacin.
Simplificacin del diseo
Un diseo sencillo es quizs la ventaja ms importante. Separar el anlisis lxico del anlisis sintctico a menudo permite simplificar una, otra o ambas fases. Normalmente aadir un analizador lxico permite simplificar notablemente el analizador sintctico. An ms, la simplificacin obtenida se hace especialmente patente cuando es
necesario realizar modificaciones o extensiones al lenguaje
inicialmente ideado; en otras palabras, se facilita el mantenimiento del compilador a medida que el lenguaje evoluciona.