Título: «Incorporando el análisis LR Canónico y el análisis Lookahead LR a la herramienta JFLAP»
Defendida: 25 de agosto de 2025
Tesista: Alejandro Karim Younes Mhanna
Directores: Gerardo Parra – Daniel Dolz
para aplicaciones concretas del mundo real. Para cerrar esta brecha, este trabajo propone una extensión didáctica que integra la visualización paso a paso de la construcción de analizadores LR(1) y LALR(1), permitiendo a los estudiantes explorar visualmente los algoritmos necesarios para construir colecciones canónicas de ítems LR(1), resolver conflictos entre estados y generar tablas de análisis sintáctico. La extensión se diseña utilizando el patrón arquitectónico Modelo-Vista-Presentador (MVP), garantizando
modularidad y mantenibilidad, y aprovecha JavaFX para una interfaz gráfica intuitiva. Las
innovaciones clave incluyen:
- Visualización Paso a Paso de Algoritmos: Los usuarios observan la construcción incremental de estados LR(1), clausuras y transiciones, con resaltado dinámico de producciones, símbolos y acciones de análisis activas.
- Fusión de Estados LALR(1): Un flujo de trabajo visual demuestra cómo se fusionan estados con núcleos comunes, reduciendo el tamaño de las tablas sin sacrificar capacidad de análisis.
- Integración con JFLAP: La extensión mantiene compatibilidad con las funcionalidades existentes de JFLAP, permitiendo analizar gramáticas derivadas de autómatas u otras estructuras mediante los nuevos métodos.
La implementación emplea Graphviz a través de bibliotecas JavaScript para graficar grafos de estados e integra controles interactivos para analizar cadenas de entrada, mostrando derivaciones como árboles o tablas. Al descomponer algoritmos complejos —como la generación de colecciones canónicas de ítems LR(1) o la obtención de símbolos de lookahead— en pasos discretos y guiados visualmente, la herramienta mitiga la curva de aprendizaje pronunciada asociada a estos temas. Las conclusiones destacan el potencial de la herramienta para mejorar los resultados pedagógicos, permitiendo a los estudiantes validar cálculos manuales, depurar conflictos y comparar comportamientos entre los analizadores LR(1) y LALR(1). Trabajos futuros incluyen ampliar el soporte para interfaces multilingües, despliegue web e integración de algoritmos de análisis adicionales. Esta extensión no solo enriquece la utilidad educativa de JFLAP, sino que también sirve como modelo para integrar conceptos avanzados de compiladores en entornos de aprendizaje enriquecidos.