Visualización avanzada de la ejecución de programas funcionales
Résumé
Entre la variedad de paradigmas de programación, uno de los más utilizados es el paradigma funcional. Este paradigma establece unas premisas que hacen de este tipo de programación un entorno muy útil para fines lúdicos o académicos. El paradigma funcional establece su comportamiento en la definición de funciones, las cuales sólo dependerán de sus argumentos de entrada. De esta manera se evitan posibles efectos colaterales, y obligan a un mismo comportamiento de la función ante los mismos argumentos recibidos. Una expresión inicial será evaluada mediante dichas re-escrituras y el aprovechamiento de las funciones definidas, hasta llegar a una expresión final resultante. Gracias a este comportamiento tan bien definido, este paradigma se aprovecha con fines académicos. Por este motivo, un complemento ideal para el compilador sería una aplicación añadida que ofrezca informes sobre la estrategia de evaluación o los pasos de re-escritura realizados, traza de ejecución. El objetivo de dicha traza es facilitar la comprensión de la evaluación del programa hasta la expresión final. Una vez planeado y comprendido el problema, para resolverlo hemos recurrido al diseño e implementación de un compilador, que se comporte de igual manera que los compiladores ya disponibles. Diseñar un compilador completo conlleva múltiples tareas: desde comprender a la perfección cada expresión o palabra del lenguaje, la gramática impuesta por el lenguaje, o el método de evaluación inherente al mismo lenguaje. El compilador que hemos implementado recibe un fichero de entrada con el programa implementado por el usuario. Interpreta dicho programa para construir una estructura que almacene toda la información de las evaluaciones, re-escrituras, o aplicación de funciones u otras expresiones del lenguaje. El objetivo de la creación y utilización de estas estructuras es aprovechar dichas estructuras para almacenar la información de todos los pasos por los que ha pasado la expresión introducida por el usuario, hasta llegar a la expresión resultante. Con este planteamiento, al finalizar la ejecución de nuestra aplicación obtenemos una estructura con toda la información necesaria para mostrarla al usuario en cualquier navegador. Este fichero permitirá al usuario ver cada paso de evaluación con mayor o menor detalle de cada re-escritura, según sus preferencias. Esto ofrece una aplicación completa que evalúe el programa introducido por el usuario y muestre por pantalla toda la traza de ejecución completamente explicada para una perfecta comprensión.
Colecciones
- Proyectos Fin de Carrera [439]