At MIST, we have developed some tools devoted to analyse
and transform functional logic programs, i.e.,
Curry programs.
Those tools run in Pakcs 1.6.0, and they are:
- A binding-time analyser for Flat programs:
flatBta
- The first approach to offline narrowing-driven
partial evaluation, which was developed making slight changes over the
original online narrowing-driven partial evaluator. This first
attempt is here: offpeval_V.0.1
- An offline partial evaluator.
Theory and benchmarks related to this tool are publishied in our
ICFP'05 paper.
A broad explanation of the tool appears in our
WCFLP'05 paper.
The version with last changes is here:
OffPeval
- An annotating tool, for the pre-processing stage of the previous
offline partial evaluator: ann
- A domain specific embedded language for specification of software
routers (for simulation), the library is here:
rose, and an example in:
router. For a complete
description you can find here a
report.
In the above links you can find a tar file, which contains the source code
of each tool, a directory with examples and, of course, a HOWTO file with
the instructions of the use.
Recently we have improved the pre-processing phase of the offline partial evaluator.
For this, we developed a new annotating tool based on the size-change graphs formalism.
The adaptation of the size-change graphs formalism to functional-logic languages appears
in our LOPSTR'06 paper.
The tool runs in the newest version of Pakcs 1.7.1.
A broad explanation here.