Towards just-in-time partial evaluation of prolog

  • Authors:
  • Carl Friedrich Bolz;Michael Leuschel;Armin Rigo

  • Affiliations:
  • Institut für Informatik, Heinrich-Heine Universität Düsseldorf, Düsseldorf;Institut für Informatik, Heinrich-Heine Universität Düsseldorf, Düsseldorf;Institut für Informatik, Heinrich-Heine Universität Düsseldorf, Düsseldorf

  • Venue:
  • LOPSTR'09 Proceedings of the 19th international conference on Logic-Based Program Synthesis and Transformation
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

We introduce a just-in-time specializer for Prolog. Just-in-time specialization attempts to unify of the concepts and benefits of partial evaluation (PE) and just-in-time (JIT) compilation. It is a variant of PE that occurs purely at runtime, which lazily generates residual code and is constantly driven by runtime feedback. Our prototype is an on-line just-in-time partial evaluator. A major focus of our work is to remove the overhead incurred when executing an interpreter written in Prolog. It improves over classical offline PE by requiring almost no heuristics nor hints from the author of the interpreter; it also avoids most termination issues due to interleaving execution and specialization. We evaluate the performance of our prototype on a small number of benchmarks.