HFusion: a tool for fusing recursive programs

Head researcher: Alberto Pardo
Contributors:

About HFusion

HFusion is a tool in ongoing development for transforming automatically functional programs to make them more efficient. Our transformations are based on a technique known as fusion which reduces the amount of memory requested by a program by eliminating the uses of intermediate data structures associated to compositions of functions. The reduction in memory usage often implies speed improvements since less time has to be invested in memory management.

The tool transforms (a subset of) Haskell programs into Haskell programs. You can try it on your own programs through this web interface, and it is also available as a library at hackage.

We offer some benchmarks here:

For a gentle and brief introduction to HFusion we suggest the reading of [1]. For a more in-depth explanation of the internals, please, see [2].

Publications

[1] Exploiting algebra/coalgebra duality for program fusion extensions
Facundo Domínguez and Alberto Pardo
Proceedings of the 11th International Workshop on Language Descriptions, Tools, and Applications (LDTA 2011), Saarbrücken, Germany, 2011.
To be published by ACM.

[2] HFusion: a fusion tool based on Acid Rain plus extensions
Facundo Domínguez
Master thesis. PEDECIBA, Universidad de la República, Uruguay.
August 2009.

Automatización de Leyes de Fusión de Programas
Facundo Domínguez y Alberto Pardo
XXXII Conferencia Latinoamericana de Informática (CLEI 2006), Santiago, Chile, August 20-25 2006.

Program Fusion with Paramorphisms
Facundo Domínguez and Alberto Pardo
Workshop on Mathematically Structured Functional Programming (MSFP'06), Kuressaare, Estonia, July 2 2006.
Proceedings published in the Electronic Workshops in Computing (eWiC) series of the British Computer Society.

Construcción de una herramienta para la fusión de programas puramente funcionales
Facundo Domínguez
Proyecto de Grado de Ingeniería en Computación, Universidad de la República, Uruguay.
Diciembre 2004.
Finalista en la categoría Trabajos Finales de Carreras de Grado del Concurso de Trabajos Estudiantiles organizado por las 34a. JAIIO (Jornadas Argentinas de Informática e Investigación Operativa), Rosario, Setiembre 2005.