Supercompiler for call-by-value functional languages
Top 70.8% on sourcepulse
Mazeppa is a supercompiler designed for call-by-value functional languages, aiming to optimize programs by symbolically evaluating them and synthesizing more efficient residual code. It targets developers and researchers seeking advanced program transformation techniques beyond deforestation and partial evaluation, offering capabilities akin to theorem proving.
How It Works
Mazeppa employs a supercompilation process that involves unfolding function definitions, analyzing calls with unknown variables, breaking down computations, folding repeated computations, and decomposing irreducible calls. This iterative process generates a process graph that is then transformed into a residual program. The system utilizes lazy constructors for functions and eager evaluation for constructors, which facilitates deforestation while preserving semantics.
Quick Start & Requirements
opam install mazeppa
. Alternatively, clone the repository and run ./scripts/install.sh
.sudo apt install graphviz
).Highlighted Details
Maintenance & Community
Licensing & Compatibility
Limitations & Caveats
--inspect
in production and advises against CPU-intensive computations due to termination checking.@extract
annotations provided as a mechanism to control behavior.3 months ago
Inactive