No confies en tus fuerzas para seguir tus caprichos...

En el pasado no existe eternidad, y un adiós no significa el final

ANALIZADOR LEXICO

Es un diagrama que ilustra la estructura de los componentes léxicos del lenguaje fuente.  El Analizador léxico sirve para eliminar espacios en blanco y agrupa los componentes e identificadores y los separa, estos se usan en los Compiladores.

Como ejemplos tenemos en Java Int, for, catch, boolean, y en C tenemos scanf, if,else, printf.


COMPONENTES

Ø  Componentes léxicos (tokens): unidad mínima de información que significa algo a la hora de compilar; concepto de palabra ; las fases de un lenguaje constan de cadenas de componentes léxicos
Ø  Lexema: una secuencia de caracteres de entrada que comprenden un solo componente léxico se llama lexema; cadena de caracteres que extraigo el componente abstracto del componente léxico.
Ø  Patrón: descripción de la forma que han de tomar los lexemas para ajustarse a un componente léxico.

Ø  Ejemplo
                                  


FUNCIONES DEL ANALIZADOR LEXICO

Un analizador léxico aísla el analizador sintáctico de la representación de lexemas de los componentes léxicos
  • Eliminación de espacios en blanco y comentarios
  • Reconocimiento de identificadores y palabras claves
  • Reconocimiento de Constantes.
                                     
ü  El analizador léxico opera bajo petición del analizador sintáctico devolviendo un componente léxico conforme el analizador sintáctico lo va necesitando para avanzar en la gramática. Los componentes léxicos son los símbolos terminales de la gramática.
ü  Suele implementarse como una subrutina del analizador sintáctico. Cuando recibe la orden obtén el siguiente componente léxico, el analizador léxico lee los caracteres de entrada hasta identificar el siguiente componente léxico`.
FUNCIONES
v  Eliminación de espacios en blanco y comentarios
v  Reconocimiento de identificadores y palabras claves
v  Reconocimiento de constantes
v  Analizador léxico (scanner): lee la secuencia de caracteres  del Programa fuente, carácter a carácter, y los agrupa para formar Unidades con significado propio, los componentes léxicos (tokens en ingles). Estos componentes léxicos representan:
v  palabras reservadas: if, while, do, . . .
v  identificadores: asociados a variables, nombres de funciones, Tipos definidos por el usuario, etiquetas,... Por ejemplo: posición, velocidad, tiempo, . . .Operadores: = * + - / == > < & ! = .
v  símbolos especiales: ; ( ) [ ] f g ...
v  constantes numéricas: literales que representan valores enteros, en coma  flotante, etc, 982, 0xF678, -83.2E+2,...
v  constantes de caracteres: literales que representan cadenas concretas de caracteres, \hola mundo",...

PODERMOS VER OTRAS FUNCIONES
DEL ANALIZADOR LEXICO


Ventajas de separar el análisis léxico y el análisis sintáctico:

v  Facilita transportabilidad del traductor (por ejemplo, si decidimos en un momento dado cambiar las palabras reservadas begin y end de inicio y fin de bloque, por {y}, solo hay que cambiar este modulo.
v  Se simplifica el diseño: el analizador es un objeto con el que se interactúa mediante ciertos métodos. Se localiza en un único modulo la lectura  física de los caracteres, por lo que facilita tratamientos especializados de E/S.
AnaLex.pdf
Compiladores  (1).pdf