Incremental Global Compilation of Prolog with the Vienna Abstract Machine

The Vienna Abstract Machine (VAM) is an abstract machine which has been designed to eliminate some weaknesses of the Warren Abstract Machine (WAM). Diierent versions of the VAM are used for diierent purposes. The VAM 2P is well suited for interpretation, the VAM 1P is aimed for native code generation. The VAM 2P has been modiied 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.

[1]  Peter Van Roy,et al.  High-performance logic programming with the Aquarius Prolog compiler , 1992, Computer.

[2]  Chris Mellish,et al.  Some Global Optimizations for a Prolog Compiler , 1985, J. Log. Program..

[3]  Maurice Bruynooghe,et al.  A Practical Framework for the Abstract Interpretation of Logic Programs , 1991, J. Log. Program..

[4]  Henry S. Warren,et al.  Instruction Scheduling for the IBM RISC System/6000 Processor , 1990, IBM J. Res. Dev..

[5]  Peter Van Roy,et al.  The Wonder Years of Sequential Prolog Implementation , 1996 .

[6]  Ulrich Neumerkel,et al.  The Vienna Abstract Machine , 1990, PLILP.

[7]  Micha Meier Compilation of Compound Terms in Prolog , 1990, NACLP.

[8]  Joachim Beer Concepts, Design, and Performance Analysis of a Parallel Prolog Machine , 1989, Lecture Notes in Computer Science.

[9]  Andreas Krall,et al.  Fast Prolog with VAM1p based Prolog Compiler , 1992, PLILP.

[10]  Peter Van Roy,et al.  1983-1993: The Wonder Years of Sequential Prolog Implementation , 1994, J. Log. Program..

[11]  I-Peng Lin,et al.  Compiling dataflow analysis of logic programs , 1992, PLDI '92.

[12]  Andrew Taylor Removal of Dereferencing and Trailing in Prolog Compilation , 1989, ICLP.

[13]  Chris Hankin,et al.  Abstract Interpretation of Declarative Languages , 1987 .

[14]  Mats Carlsson,et al.  SICStus Prolog User''s Manual , 1993 .

[15]  Andreas Krall Implementation of a high-speed Prolog interpreter , 1987, PLDI.

[16]  Saumya K. Debray,et al.  A Simple Code Improvement Scheme for Prolog , 1992, J. Log. Program..