Título: Un sistema de fusión para programas con efectos Marco de Trabajo: MAESTRIA Área de desarrollo: Métodos Formales Autor: Leonardo Richero Contacto: lrichero@fing.edu.uy Día: VIERNES Hora: 16:30:00 Palabras Claves: fusión de programas, efectos, mónadas, recursión Resumen: Una forma modular de escribir programas en programación funcional es siguiendo un principio de composicionalidad, el cual establece que funciones complejas sean construídas como composición de funciones más simples. Los programas así construídos suelen ser más fáciles de entender, poseen un alto nivel de reusabilidad y es más sencillo razonar sobre los mismos. Sin embargo, cada composición de funciones carga consigo la construcción de una estructura de datos intermedia que puede acabar siendo un factor de ineficiencia si es usado en gran escala. Definiciones más eficientes pueden ser derivadas por la aplicación de una técnica de transformación de programas conocida como fusión, la cual permite -bajo ciertas condiciones- transformar una composición de funciones en una función monolítica equivalente que no precise generar la estructura de datos intermedia. En [1] se presentan leyes de fusión para programas con efectos, siendo los efectos modelados mediante las llamadas mónadas (estructuras algebraicas que permiten capturar nociones computacionales, tales como, excepciones, estado, entrada/salida, no determinismo, etc.). Las leyes allí presentadas fueron concebidas siguiendo un abordaje estrictamente estructural, teóricamente válido, pero que dificulta su uso práctico. El objetivo de este trabajo es presentar leyes de fusión alternativas las cuales demuestran ser más efectivas en la práctica y que son la base de una herramienta que permite, en forma automática, realizar la fusión de programas con efectos. Esta herramienta, extensión de otra para la fusión de programas puramente funcionales, ha sido desarrollada como parte de un proyecto CSIC I+D y forma parte de mi tesis de maestría. [1] "A Calculation Approach to Recursive Programs with Effects", Alberto Pardo, Tesis de Doctorado, Universidad Tecnológica de Darmstadt, Alemania, 2001. |
Ultima modificacion 5 de Octubre 2004 16:30 |