next up previous
Next: Introduction

Similix: A self-applicable partial evaluator for Scheme

Jesper Jørgensen
Department of Mathematics and Physics
Royal Veterinary and Agricultural University
Denmark
jesper@dina.kvl.dk

Abstract:

Similix is an autoprojector (a self-applicable partial evaluator) for a large higher-order subset of the strict functional language Scheme. Similix handles 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. However, user assistance may in some cases be required to avoid looping. 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.





Jesper Jxrgensen
Sat Jun 27 17:30:51 MET DST 1998