Implementation of logic languages

Implementation of logic languages

Prof. Peter Van Roy

Vision

Is it possible to implement a logic language as easily as writing a WAM-based Prolog, such that the language's performance rivals imperative languages? Each of these two conditions can be satisfied separately. First, it is very easy to build a logic programming system based on the technology of the Warren Abstract Machine (WAM). The performance of such a system will be an order of magnitude less than that of imperative language implementations. Second, it is possible for a logic language to approach imperative language performance. Constructive proofs of this have been given by the Aquarius and Parma systems. However, achieving this performance level requires a quite complex implementation. Can the simplicity of the first approach be combined with the performance of the second? Finding a positive answer to this question will catalyze a quantum leap in performance in all existing logic language implementations.

References

Logical State Threads: a tool for writing large Prolog programs

The state-of-the-art in logic programming implementation (1994)

Record constraints in Oz

Implementation of LIFE, a successor to Prolog

High performance implementation of Prolog

Aquarius Prolog is one of the world's highest performance Prolog systems. It rivals imperative language performance (i.e., good C compilers) on a significant set of programs. In its current state, the system has a full complement of built-ins (Quintus-compatible), is available free with full source code, but is no longer being maintained.