Analizador Lexico

Páginas: 22 (5438 palabras) Publicado: 25 de octubre de 2011
Compiladores. Análisis léxico

2-1

2. El análisis léxico.
Esta fase del compilador es la única que esta en contacto con el programa fuente. Su función es leer las instrucciones del programa y generar una serie de elementos básicos ( componentes léxicos ) utilizados para su construcción. Para el analizador léxico, la instrucción leída es una simple cadena de caracteres sin una estructura enparticular. Mediante el uso de técnicas adecuadas descompondrá esta cadena en una serie de elementos fundamentales del lenguaje utilizado para su escritura. Estos elementos básicos, en el contexto de los lenguajes de programación, serán nombres de variables, palabras reservadas del lenguaje ( while, for, switch, etc. ), constantes literales, diversos operadores aritméticos, relacionales y lógicos,etc. Por ejemplo, la construcción siguiente puede descomponerse en los elementos indicados: TotalImpuesto = SubTotal * Taza / 100 Número entero Operador aritmético Variable Operador aritmético Variable Operador de asignación Variable El analizador léxico trabaja en cooperación con el analizador sintáctico, según se muestra en la Fig. 2.1.

Fig.2.1. Interacción de un analizador léxico con elanalizador sintáctico.

Ing. Fausto M. Orozco C.

Compiladores. Análisis léxico

2-2

Como puede verse, al analizador léxico trabaja a solicitud del analizador sintáctico. Este último se encarga de verificar que las diferentes instrucciones estén bien escritas verificando un conjunto de reglas de escrituras dictadas por una gramática. Estas diferentes reglas se enuncian de manera generalhaciendo uso de diferentes componentes elementales conocidos como componentes léxicos. Por ejemplo, una regla de escritura sería algo similar a: exp-aritm := variable ‫ ׀‬const-numérica ‫ ׀‬exp-aritm op-aritm exp-aritm que se lee “ una expresión aritmética es una variable o una constante numérica o una expresión aritmética seguida por un operador aritmético y otra expresión aritmética”.Independientemente de la complejidad de la regla anterior, nótese como se hace alusión a elementos como variable, const-numérica, etc. y no a cosas como x, suma, 34, etc. Cuando el analizador sintáctico encuentra el elemento denominado variable, llamará al analizador léxico para comprobar que efectivamente el programador escribió una cadena que se identifique como ejemplo de variable. El analizador léxicorealiza su trabajo procesando la cadena leída ( cadena de entrada ) de izquierda a derecha y carácter por carácter. Cuando anuncie un reconocimiento dejará un indicador en la cadena de entrada para reiniciar el proceso cuando sea solicitado de nuevo por el analizador sintáctico. El analizador léxico, al estar en contacto con la cadena de entrada puede realizar algunas tareas adicionales como: •Compactar la cadena eliminando espacios, tabuladores, etc. • Ignorar los comentarios. • Expandir macros. Estas funciones pudieran requerir que el analizador léxico procese dos veces la cadena de entrada. En una primera pasada se pueden ignorar espacios y expandir macros, y en la segunda realizar el trabajo de reconocimiento de los componentes léxicos. Otra función importante del analizador léxico estarelacionada con los mensajes de error que generan tanto el analizador sintáctico como el semántico. El analizador léxico conoce cuantas líneas y cuantos caracteres se han procesado. Por lo tanto, un mensaje de error sintáctico puede señalar la línea y la posición dentro de la línea donde se detectó el error. Hay varias razones para separar el analizador léxico del sintáctico:

Ing. Fausto M.Orozco C.

Compiladores. Análisis léxico

2-3

1. Un diseño sencillo es quizá la consideración más importante. La separación de las fases puede simplificar la labor de análisis sintáctico al no incluirse la comprobación de comentarios o de separadores durante esta fase, por ejemplo. 2. Se mejora la eficiencia del compilador. Gran parte de la labor del compilador consiste en el reconocimiento...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Analizador Lexico
  • Analizador Lexico
  • Analizador Lexico
  • Analizadores lexicos
  • Analizador Lexico
  • analizador lexico
  • Analizador Lexico
  • Analizador lexico

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS