Transforming interpreters into inverse interpreters by partial evaluation

Robert Glück, Youhei Kawada, Takuya Hashimoto
2003 SIGPLAN notices  
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/966049.777391 fatcat:iymfman5ofhtjdbdiz364fwvg4