Está en la página 1de 12

Analizador

Lexico
EN DETALLE:
La función del analizador léxico

u Como la primera fase de un compilador, la principal tarea del analizador léxico es leer los
caracteres de la entrada del programa fuente, agruparlos en lexemas y producir como
salida una secuencia de tokens para cada lexema en el programa fuente.
Interacciones entre el
analizador léxico y el
analizador sintáctico:
u El flujo de tokens se envía al analizador
sintáctico para su análisis. Con frecuencia el
analizador léxico interactúa también con la
tabla de símbolos
u En algunos casos, el analizador léxico puede
leer la información relacionada con el tipo de
información de la tabla de símbolos, como
ayuda para determinar el token apropiado que
debe pasar al analizador sintáctico
Funciones importantes:

u El analizador léxico es la parte del compilador que lee el texto de origen, debe realizar
otras tareas aparte de identificar lexemas.
u Una de esas tareas es eliminar los comentarios y el espacio en blanco (caracteres de
espacio, nueva línea, tabulador y tal vez otros caracteres que se utilicen para separar
tokens en la entrada). Otra de las tareas es correlacionar los mensajes de error generados
por el compilador con el programa fuente
Partes de un
Analizador Léxico:
u los analizadores léxicos se dividen en una
cascada de dos procesos:
a) El escaneo consiste en los procesos
simples que no requieren la
determinación de tokens de la entrada,
como la eliminación de comentarios y la
compactación de los caracteres de espacio
en blanco consecutivos en uno solo.
b) El propio análisis léxico es la porción más
compleja, en donde el escanear produce la
secuencia de tokens como salida.
Comparación entre análisis léxico y
análisis sintáctico
u Existen varias razones por las cuales la parte correspondiente al análisis de un
compilador se separa en fases de análisis léxico y análisis sintáctico:
1. La sencillez en el diseño es la consideración más importante. La separación del
análisis léxico y el análisis sintáctico a menudo nos permite simplificar por lo
menos una de estas tareas. Por ejemplo, un analizador sintáctico que tuviera que
manejar los comentarios y el espacio en blanco como unidades sintácticas sería
mucho más complejo.
2. Se mejora la eficiencia del compilador. Un analizador léxico separado nos permite
aplicar técnicas especializadas que sirven sólo para la tarea léxica, no para el
trabajo del análisis sintáctico.
3. Se mejora la portabilidad del compilador.
Quienes conforman el Análisis
Léxico?
u Un token es un par que consiste en un nombre y un valor de atributo opcional. El nombre
del token es un símbolo abstracto que representa un tipo de unidad léxica; por ejemplo,
una palabra clave específica o una secuencia de caracteres de entrada que denotan un
identificador.
u Un patrón es una descripción de la forma que pueden tomar los lexemas de un token. En
el caso de una palabra clave como token, el patrón es sólo la secuencia de caracteres que
forman la palabra clave. Para los identificadores y algunos otros tokens, el patrón es una
estructura más compleja que se relaciona mediante muchas cadenas.
u Un lexema es una secuencia de caracteres en el programa fuente, que coinciden con el
patrón para un token y que el analizador léxico identifica como una instancia de ese token.
Un
Ejemplo:
Problemas
difíciles durante
Por lo general, dado el patrón que describe a los lexemas de un
token, es muy sencillo reconocer los lexemas que coinciden
el
cuando ocurren en la entrada. No obstante, en algunos reconocimiento
lenguajes no es tan evidente cuando hemos visto una instancia de tokens
de un lexema que corresponde
a un token

DO 5 I = 1.25 VS DO 5 I = 1.25
Errores léxicos

u Sin la ayuda de los demás componentes es


difícil para un analizador léxico saber que
hay un error en el código fuente.
u Por ejemplo, si la cadena FI se encuentra
por primera vez en un programa en C en el
siguiente contexto: fi(x<=10)
u El análisis Léxico reconoce este error, dado
que la expresión correcta de la siguiente
forma: if(x<=10)
Análisis sintáctico
Análisis
sintáctico
u El análisis sintáctico es el
análisis de las funciones
sintácticas o relaciones de
concordancia y jerarquía
que guardan las palabras
Claves o Token permitidos,
cuando se agrupan entre sí.

También podría gustarte