The Second Futamura Projection for the Type-Directed Partial Evaluation

Authors

Bernd Grobauer and Zhe Yang

Abstract

Keywords:Partial Evaluation, Type-Directed Partial Evaluation, Generating Extentions, Second Futamura Projection, Native Implementation in ML.

The second Futamura projection describes the automatic generation of non-trivial generating extensions by applying a partial evaluator to itself. We derive an ML implementation of the second Futamura projection for Type-Directed Partial Evaluation (TDPE). Due to the differences between `traditional', syntax-directed partial evaluation and TDPE, this derivation involves several conceptual and technical steps. These include a suitable formulation of the second Futamura projection and techniques for using TDPE to specialize type-indexed programs. In the context of the second Futamura projection, we also compare and relate TDPE with conventional offline partial evaluation.

We demonstrate our technique with several examples, including compiler generation for Tiny, a prototypical imperative language.

Publication Information