Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
From I/O Automata to Timed I/O Automata
[go: Go Back, main page]

The Second Futamura Projection for Type-Directed Partial Evaluation

Bernd Grobauer and Zhe Yang

Abstract

A generating extension of a program specializes it with respect to some specified part of the input. A generating extension of a program can be formed trivially by applying a partial evaluator to the program; the second Futamura projection describes the automatic generation of non-trivial generating extensions by applying a partial evaluator to itself with respect to the programs.

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.

The paper itself

Published in Higher-Order and Symbolic Computation, 14(2/3), 2001. A preliminary version appeared in Julia L. Lawall, editor, Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, SIGPLAN Notices, Vol. 34, No 11, pages 22-32, Boston, Massachusetts, November 2000. ACM Press.

Here are pointers to the paper: [ps] [pdf]


Bernd Grobauer