Documentos de Académico
Documentos de Profesional
Documentos de Cultura
U4 - Marco Antonio Romero Andrade
U4 - Marco Antonio Romero Andrade
LENGUAJES Y AUTÓMATAS I
ANÁLISIS LÉXICO
Presenta:
Docente:
INTRODUCCIÓN. ......................................................................................................................... 3
CONCLUSIÓN. .............................................................................................................................. 7
Referencias...................................................................................................................................... 7
UNIDAD IV. ANÁLISIS LÉXICO.
INTRODUCCIÓN.
El análisis léxico es una etapa fundamental en el proceso de compilación de un lenguaje de
programación. Es el primer paso que se realiza al procesar el código fuente y tiene como objetivo
identificar y clasificar los componentes léxicos o tokens que conforman el programa. Estos tokens
son unidades básicas del lenguaje, como palabras clave, identificadores, operadores y constantes.
Para llevar a cabo el análisis léxico, se utilizan patrones o expresiones regulares que describen la
estructura de los tokens. Estos patrones permiten identificar y reconocer los lexemas en el código
fuente. El analizador léxico, también conocido como escáner, es responsable de aplicar estos
patrones y construir una secuencia de tokens que se utilizará en las etapas posteriores del
compilador, como el análisis sintáctico y la generación de código.
También tiene como funcionalidad secundaria. Puede intervenir en la interfaz de usuario, como
eliminar del programa fuente comentarios y espacios en blanco en forma de caracteres de espacio
blanco, como es el TAB. También puede relacionar los mensajes de error del compilador con los
del programa fuente. También en otro tipo de compiladores, el analizador léxico se puede hacer
cargo de una copia del programa fuente en el que están marcados los errores.
Identificadores. Estos son los nombres utilizados para representar variables definidas por el
programador.
Palabras clave. Éstas son palabras reservadas del lenguaje que tienen un significado específico,
como lo son if, while, for, etc.
Operadores. Son símbolos que se utilizan para realizar operaciones matemáticas, lógicas y de
asignación, como lo son +, -, *, /, =, etc.
Constantes. Son definidos como valores fijos que no cambian durante la ejecución del programa,
como son los números enteros, flotantes y cadenas de caracteres.
En el análisis léxico, se utilizan patrones para reconocer los lexemas (o unidades léxicas) en el
código fuente. Un patrón es una descripción formal de la estructura de un lexema, expresada
mediante una gramática regular o expresiones regulares. Por ejemplo, el patrón para reconocer un
número entero podría ser "\d+", donde "\d" representa cualquier dígito del 0 al 9 y "+" indica que
el dígito puede repetirse una o más veces.
Un lexema es una instancia concreta de un componente léxico reconocido por el analizador léxico.
Por ejemplo, si el código fuente contiene el token "if", el lexema correspondiente sería la cadena
de caracteres "if".
La tabla de tokens se construye durante el análisis léxico y almacena información sobre cada
lexema reconocido en el código fuente. Cada entrada de la tabla de tokens puede contener
información como el tipo de token, la posición en el código fuente, y, en algunos casos, el valor
del token.
Definición de los componentes léxicos: Identificar los componentes léxicos del lenguaje, como
identificadores, palabras clave, operadores y constantes.
Especificación de patrones: Definir los patrones que describen la estructura de cada componente
léxico utilizando gramáticas regulares o expresiones regulares.
Construcción de la tabla de tokens: A medida que el analizador léxico reconoce los lexemas, se va
llenando la tabla de tokens con la información correspondiente a cada lexema identificado.
4.4 ERRORES LÉXICOS.
Los errores léxicos son la fase que sigue después del análisis léxico. En ésta parte el programa
fuente es leído de izquierda a derecha y se agrupa en componentes léxicos (también llamados
tokens). Todos los espacios en blanco y demás información necesaria, son eliminados del
programa fuente. También se comprueban que los símbolos del lenguaje sean escritos
correctamente.
Los errores ocurren cuando el analizador encuentra lexemas que no cumplen con las reglas léxicas
del lenguaje. Los errores son detectados en el análisis léxico y se reportan al programador para su
corrección. Los ejemplos más comunes son los siguientes:
Identificadores inválidos: Cuando se utiliza un identificador que no cumple con las reglas léxicas
del lenguaje, como incluir caracteres especiales o comenzar con un número.
Palabras clave mal escritas: Cuando una palabra clave del lenguaje está mal escrita, lo cual puede
suceder por errores de ortografía o el uso incorrecto de mayúsculas y minúsculas.
Caracteres no válidos: Cuando se utiliza un carácter que no está permitido dentro del lenguaje,
como símbolos no reconocidos o caracteres de control.
Números mal formados: Cuando se utilizan números que no cumplen con la sintaxis válida del
lenguaje, como números con formatos incorrectos o valores fuera del rango permitido.
Referencias
K, A. (2018). Modern Compiler implementation in C.