Towards a jitting VM for prolog execution

11 years 7 months ago
Towards a jitting VM for prolog execution
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. We present a high-level continuation-based Prolog interpreter written in RPython, a restricted subset of Python. This interpreter is annotated with hints, so that it can be fed through the PyPy tracing JIT generator, which incorporates partial evaluation techniques. The resulting Prolog implementation is surprisingly efficient: it clearly outperforms existing implementations 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 tries to show that PyPy can indeed form the basis for implementing programming languages other than Python. Furthermore, we believe that our results showcase the great potential of the tracing JIT approach for declarative programming languages such as Prolog.1 C...
Carl Friedrich Bolz, Michael Leuschel, David Schne
Added 14 Feb 2011
Updated 14 Feb 2011
Type Journal
Year 2010
Where PPDP
Authors Carl Friedrich Bolz, Michael Leuschel, David Schneider
Comments (0)