haskell/sc-mini-pfp/readme
This is the minimal supercompiler.
The goal is to stress the main features of supercompilation for a working functional programmer.
Its design is an attempt to illustrate the following formula:
Supercompiler = Driving + Positive info propagation + Folding + Simplification + Generalization
However, it turns out to be not so easy task. So here we illustrate this formula step by step:
1) Prototype = Driving + Generalization + Folding
2) Deforester = Prototype + Simplification of graph of configurations
3) Supercompiler = Deforester + Positive Information Propagation
In order to catch the idea of this supercompiler, just look into the following modules into the following order:
1) Prototype
2) Deforester
3) Supercompiler