Cálculo de Programas con Functores Aplicativos

Autor: 
Germán Andrés Delbianco
Fecha Defensa: 
03/12/2010
Resumen: 
Una práctica habitual en el paradigma de programación funcional es el uso de operadores o esquemas de recursión para estructurar algoritmos. Éstos son funciones de alto orden que capturan patrones de recursión comunes a las estructuras de datos que manipulan e.g. map, fold, y que se derivan de la interpretación categórica de los tipos de datos recursivos. El uso de estos operadores para estructurar programas funcionales resulta beneficioso, ya que permite aprovechar las propiedades algebraicas asociados de dichos operadores para derivar leyes genéricas para calcular programas eficientes y correctos. Los functores aplicativos son una abstracción que modela efectos computacionales en lenguajes funcionales puros e.g. entrada/salida, fallas, no determinismo. Los functores aplicativos generalizan el concepto de mónada y favorecen un estilo aplicativo de programación. Este trabajo propone una caracterización de la recursión estructural con efectos aplicativos. Presentaremos un operador genérico, al que denominamos ifold, que captura la esencia de la recursión estructural aplicativa. Además, presentaremos algunas propiedades calculacionales de este operador que permiten fusionar algoritmos aplicativos y mostramos algunos ejemplos de la aplicación de dichas reglas. Finalmente, mostraremos como este operador puede utilizarse para diseñar modularmente algoritmos con efectos aplicativos incrementales, agregando funcionalidad en cada etapa de forma sencilla y flexible.
Institución: 
FCEIA-UNR
Director y Co-Director: Dr. Alberto Pardo, Universidad de la República (Uruguay) y Dr. Mauro Jaskelioff (FCEIA-UNR).
Tesina: