SIMILIX: A Self-Applicable Partial Evaluator for Scheme

  • Authors:
  • Jesper Jørgensen

  • Affiliations:
  • -

  • Venue:
  • Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

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.