Incremental Global Compilation of Prolog with the Vienna Abstract Machine
Andreas Krall and Thomas Berger
Institut für Computersprachen
Technische Universität Wien
Argentinierstraße 8
A-1040 Wien, Austria
{andi,tb}@complang.tuwien.ac.at
Abstract
The Vienna Abstract Machine (VAM) is an abstract machine which has
been designed to eliminate some weaknesses of the Warren Abstract
Machine (WAM). Different versions of the VAM are used for different
purposes. The VAM_2p is well suited for interpretation, the VAM_1p
is aimed for native code generation. The VAM_2p has been modified
to the VAM_ai, a concept suited for abstract interpretation.
Analysis with the VAM_ai is so fast that it is feasible to support
both, global analysis and database updates with assert and
retract. We present an incremental compiler based on the
VAM_1p and the VAM_ai. A preliminary evaluation of our compiler
shows that the generated code competes with the best existing
compilers whereas the compile time is comparable to that of simple
bytecode translators.