Transforming interpreters into inverse interpreters by partial evaluation

Robert Glück, Youhei Kawada, Takuya Hashimoto
2003 Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation - PEPM '03  
The experiments in this paper apply the idea of prototyping programming language tools from robust semantics: we used a partial evaluator (Similix) to turn interpreters into inverse interpreters. This way we generated inverse interpreters for several small languages including interpreters for Turing machines, an applied lambda calculus, a flowchart language, and a subset of Java bytecode. Limiting factors of offline partial evaluation were the polyvariant specialization scheme with its lack of
more » ... eneralization; advantages were the availability of higher-order values to specialize a breadthfirst tree traversal. This application of self-applicable partial evaluation is different from the classical Futamura projections that tell us how to translate a program by specialization of an interpreter.
doi:10.1145/777388.777391 dblp:conf/pepm/GluckKH03 fatcat:ik3heqwf4zg2vablulu7q3hxfu