...collaborate on

The HaCirc tool

HaCirc is an Haskell refactor. It refactors circular programs into its strict counterpart. The tool accepts, as input, Haskell circular programs and produces, as output, strict Haskell programs. Furthermore, it is also possible to obtain strict programs that use no explicit intermediate data structure.

HaCirc is also a circular programs' slicer. Indeed, the tool is able to compute circular programs' slices, which can be obtained in three different programming styles: again as circular programs, as multiple traversal strict programs that use intermediate data structures and as deforested programs (i.e., programs with no intermediate, traversal gluing, structures).

There are two versions of the HaCirc tool:

  • a batch tool that given as input a circular Haskell program generates in the output its strict Haskell program. This version is is available for download and use here (instalation instructions inside).

  • a web-based interactive tool that allows HaCirc to be used online. No prior instalation is needed to give the HaCirc tool a try, online!


We have performed some benchmarks on the different implementations of circular programs, using a realistic example: processing the MicroC language, a small subset of the C language. The memory profilings obtained are presented here.

r15 - 02 Sep 2009 - 17:38:34 - Main.JoaoFernandes
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Syndicate this site RSSATOM