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.