Transforming interpreters into inverse interpreters by partial evaluation

  • Authors:
  • Robert Glück;Youhei Kawada;Takuya Hashimoto

  • Affiliations:
  • Waseda University, Tokyo, Japan;Waseda University, Tokyo, Japan;Waseda University, Tokyo, Japan

  • Venue:
  • Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 online partial evaluation were the polyvariant specialization scheme with its lack of generalization;advantages were the availability of higher-order values to specialize a breadth-first 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.