Título: Acumulaciones más flexibles Marco de Trabajo: PROYECTO GRADO Área de desarrollo: Métodos Formales Autor: Mauro Jaskelioff Contacto: mauro@fceia.unr.edu.ar Día: VIERNES Hora: 15:30:00 Palabras Claves: Recursión, fusión de programas, acumulaciones Resumen: Las acumulaciones son funciones recursivas de amplio uso en el contexto de la programación funcional. Deben su nombre al hecho de que mantienen resultados intermedios en parámetros adicionales (llamados acumuladores) que pueden eventualmente ser usados en etapas posteriores de cómputo. En un trabajo anterior [Pardo 2002] se presentó un operador de recursión genérico -de nombre afold- el cual permite escribir acumulaciones definidas por recursión estructural para una amplia variedad de tipos de datos (como ser, listas, árboles, etc.). Junto a este operador se posee una batería de leyes algebraicas que sirven como herramienta formal para razonar sobre programas en los que ocurren acumulaciones. En este trabajo presentamos una extensión al operador afold para permitir un mayor grado de flexibilidad en el tipo de acumulaciones que se pueden representar. La extensión consiste, esencialmente, en habilitar la posibilidad de que las acumulaciones puedan realizar múltiples llamadas recursivas sobre un mismo subtérmino pero con diferentes valores de los acumuladores, algo que no era posible de representar usando la versión original de afold. La extensión que proponemos demuestra ser conservativa, en el sentido de que leyes algebraicas similares valen para el nuevo operador. El presente trabajo se está desarrollando como parte de un proyecto de grado de la Licenciatura en Ciencias de la Computación de la Universidad Nacional de Rosario, Argentina, bajo la tutoría del profesor Alberto Pardo. [Pardo 2002] A. Pardo. Generic Accumulations. IFIP Working Conference on Generic Programming, Dagstuhl, Alemania, Julio 2002. |
Ultima modificacion 5 de Octubre 2004 16:30 |