Parma - Bridging the Performance GAP Between Imperative and Logic Programming

Parma is an experimental high-performance Prolog compiler for the MIPS RISC architecture [4]. It was the first logic programming implementation to obtain performance comparable to imperative languages. It depends heavily on a global static analysis phase based on abstract interpretation. This paper describes the important components of Parma's implementation and discusses performance results, including analysis of the incremental benefits of some components of the compiler.

[1]  Peter Van Roy,et al.  Can Logic Programming Execute as Fast as Imperative Programming? , 1990 .

[2]  Andrew Taylor,et al.  LIPS on a MIPS: Results from a Prolog Compiler for a RISC , 1990, ICLP.

[3]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[4]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

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

[6]  David H. D. Warren,et al.  Applied logic : its use and implementation as a programming tool , 1978 .

[7]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[8]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[9]  Peter Van Roy,et al.  The Benefits of Global Dataflow Analysis for an Optimizing Prolog Compiler , 1990, NACLP.

[10]  Gurindar S. Sohi,et al.  On the Adequacy of Direct Mapped Caches for Lisp and Prolog Data Reference Patterns , 1989, NACLP.

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

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

[13]  Gerry Kane,et al.  MIPS RISC Architecture , 1987 .

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

[15]  Andrew Taylor,et al.  High Performance Prolog Implementation , 1991 .