| The Second Futamura Projection for Type-Directed Partial Evaluation Bernd Grobauer 
 December 2000 | 
| Abstract:
A generating extension of a program specializes the program
  with respect to part of the input. Applying a partial evaluator to the
  program trivially yields a generating extension, but specializing the partial
  evaluator with respect to the program often yields a more efficient one. This
  specialization can be carried out by the partial evaluator itself; in this
  case, the process is known as the second Futamura projection.
 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 making TDPE amenable to self-application. 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. Available as PostScript, PDF, DVI. |