The VAMai - an Abstract Machine for Incremental Global Dataflow Analysis of Prolog
Andreas Krall and Thomas Berger
Institut für Computersprachen
Technische Universität Wien
Argentinierstraße 8
A-1040 Wien, Austria
andi@complang.tuwien.ac.at
Abstract
A commonly used technique for global flow analysis of Prolog programs
is abstract interpretation. Until now nearly all abstract
interpretation systems for Prolog are research prototypes and very
slow. These systems are not suitable for the integration in Prolog
compilers. So we developed the VAMai, an abstract machine for the
abstract interpretation of Prolog. 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 VAMai, an
abstract machine suited for abstract interpretation. The VAMai
does the data flow analysis by a factor of two hundred faster than
the previous used meta interpreters written in Prolog. Preliminary
results of intermediate code size and analysis time are presented.