@gron

Towards a Jitting VM for Prolog Execution

, , and . Proceedings of the 12th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming, page 99--108. ACM, (2010)
DOI: 10.1145/1836089.1836102

Abstract

Most Prolog implementations are implemented in low-level languages such as C and are based on a variation of the WAM instruction set, which enhances their performance but makes them hard to write. In addition, many of the more dynamic features of Prolog (like assert), despite their popularity, are not well supported. We present a high-level continuation-based Prolog interpreter based on the PyPy project. The PyPy project makes it possible to easily and efficiently implement dynamic languages. It provides tools that automatically generate a just-in-time compiler for a given interpreter of the target language, by using partial evaluation techniques. The resulting Prolog implementation is surprisingly efficient: it clearly outperforms existing interpreters of Prolog in high-level languages such as Java. Moreover, on some benchmarks, our system outperforms state-of-the-art WAM-based Prolog implementations. Our paper aims to show that declarative languages such as Prolog can indeed benefit from having a just-in-time compiler and that PyPy can form the basis for implementing programming languages other than Python.

Description

Towards a jitting VM for prolog execution

Links and resources

Tags

community

  • @gron
  • @dblp
@gron's tags highlighted