Similix System

Program-Transformation.Org: The Program Transformation Wiki
Similix is an autoprojector (self-applicable partial evaluator) for a large higher-order subset of the strict functional language Scheme. Similix treats source programs that use a limited class of side-effects, for instance input/output operations. Similix handles partially static data structures.

Similix is automatic: in general, no user annotations (such as unfolding information) are required; user assistance may in some cases be required to avoid looping, however. Similix gives certain guarantees concerning the residual programs it generates: computations are never discarded (partial evaluation thus preserves termination properties) and never duplicated.

Similix is well-suited for partially evaluating interpreters that use environments represented as functions and interpreters written in continuation passing style. Since Similix is self-applicable, stand-alone compilers can be generated from interpreters.

Similix is highly portable. It conforms to the IEEE and R4RS Scheme standards, but it also runs under R3RS Scheme.

From the DIKU Similix page:

Other resources:

-- EelcoVisser - 09 Sep 2001