Technical Reports

The ICICS/CS Reading Room

UBC CS TR-86-25 Summary

Efficiently Implementing Pure Prolog or: Not ``YAWAM'', November 1986 Peter Ludemann

High performance hardware and software implementations of Prolog are now being developed by many people, using the Warren Abstract Machine (or ``WAM'') [Warr83]. We have designed a somewhat different machine which supports a more powerful language than Prolog, featuring: \begin{itemize} \item efficiency similar to the WAM for sequential programs, \item tail recursion optimization (TRO) [Warr86], \item sound negation, \item pseudo-parallelism (co-routining) with full backtracking, \item dynamic optimization of clause order, \item efficiency {\em if-then-else} (``shallow'' backtracking), \item simple, regular instruction set designed for easily optimized compilation, \item efficient memory utilization, \item integrated object-oriented virtual memory, \item predicates as first class objects. \end{itemize}

Our design gives the programmer more flexibility in designing programs than is provided by standard Prolog, yet it retains the efficiency of more limited designs.

If you have any questions or comments regarding this page please send mail to