FAQ: Prolog Resource Guide 1/2 [Monthly posting]

1 view
Skip to first unread message

Mark Kantrowitz

Jul 13, 1997, 3:00:00 AM7/13/97

Archive-name: prolog/resource-guide/part1
Last-Modified: Thu Feb 20 12:54:26 1997 by Mark Kantrowitz
Version: 1.36
Maintainer: Mark Kantrowitz <mkan...@cs.cmu.edu>
URL: http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html
Size: 85332 bytes, 1808 lines

;;; ****************************************************************
;;; Prolog Resource Guide ******************************************
;;; ****************************************************************
;;; prg_1.faq

This post contains the Prolog Resource Guide.

Contributions, corrections, suggestions, and comments should be sent
to Mark Kantrowitz <mkan...@cs.cmu.edu>.

This guide lists a variety of resources for the Prolog community,
including books, magazines, ftp archives, and products. It is posted
on the 13th of every month to the newsgroups comp.lang.prolog and
comp.object.logic. The PRG is also posted to the newsgroups
news.answers and comp.answers where they should be available at any
time (ask your local news manager).

*** Copyright:

Copyright (c) 1992-94 by Mark Kantrowitz. All rights reserved.

This FAQ may be freely redistributed in its entirety without
modification provided that this copyright notice is not removed. It
may not be sold for profit or incorporated in commercial documents
(e.g., published for sale on CD-ROM, floppy disks, books, magazines,
or other print form) without the prior written permission of the
copyright holder. Permission is expressly granted for this document
to be made available for file transfer from installations offering
unrestricted anonymous file transfer on the Internet.

If this FAQ is reproduced in offline media (e.g., CD-ROM, print form,
etc.), a complimentary copy should be sent to Mark Kantrowitz, School
of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue,
Pittsburgh, PA 15213-3891 USA.

This article is provided AS IS without any express or implied warranty.

*** Recent Changes:

;;; 1.30:
;;; 7-AUG-95 mk Updated Amzi! entry in part 2.
;;; 1.31:
;;; 29-AUG-95 mk Added ORISA Prolog entry to part 2.
;;; 29-AUG-95 mk Added [1-19] about ISO Prolog Standard
;;; 30-AUG-95 mk Updated entry for LPA Prolog in part 2.
;;; 12-SEP-95 mk Several changes to [1-1], [1-3], [1-13], [1-15] and part 2
;;; (ALS Prolog and CLP(RI)) by Ken Bowen.
;;; 1.32:
;;; 18-SEP-95 mk Updated Prolog by BIM and IBM Prolog entries.
;;; 1.33:
;;; 18-OCT-95 mk Added entry on Mercury to [2-7].
;;; 9-NOV-95 mk Updated ALP info - Logic Programming Newsletter and [1-4].
;;; 19-MAR-96 mk Added note about Henderson paper to [1-10].
;;; 14-MAY-96 mk Added entry for Visual Prolog to part 2.
;;; 14-MAY-96 mk Updated LPA Prolog entry.
;;; 14-MAY-96 mk Prolog Vendors' Group renamed Prolog Management Group, and
;;; email address changed due to Al Roth's death earlier this
;;; year.

*** Topics Covered:

There are currently two parts to the PRG:

1. Introductory Matter and General Questions
2. Prolog Implementations

Table of Contents (Part 1):

[1-0] Introduction
[1-1] Sources of information about Prolog
[1-2] Prolog and Logic Programming Related Mailing Lists
[1-3] Books and Magazine Articles
[1-4] Prolog and Logic Programming Associations and Journals
[1-5] FTP Archives and Other Resources
[1-6] Free Object-Oriented Systems for Prolog
[1-7] Commercial Object-Oriented Systems for Prolog
[1-8] The Prolog 1000 Database
[1-9] X-Windows Interfaces
[1-10] Is there a straight-forward way of compiling Prolog to C?
[1-11] WAM emulators and tracers
[1-12] What is the Basic Andorra Model and AKL?
[1-13] What is Constraint Logic Programming?
[1-14] How do you write portable programs in Prolog?
[1-15] World-Wide Web (WWW) Resources
[1-16] Prolog Job Postings
[1-17] Is Prolog really used in Windows NT?
[1-18] History of Prolog
[1-19] The ISO Standard for Prolog and other Prolog standards
[1-A] Acknowledgements

Prolog Implementations (Part 2):

[2-0] General information about Prolog Implementations
[2-1] Free Prolog Implementations
[2-2] Commercial Prolog Implementations
[2-3] Free Parallel Prolog Implementations
[2-4] Commercial Parallel Prolog Implementations
[2-5] Free Constraint Systems
[2-6] Commercial Constraint Systems
[2-7] Free Logic Programming Systems
[2-8] Commercial Logic Programming Systems
[2-9] Other Commercial Prolog Products
[2-10] Prolog extensions, meta-interpreters, and pre-processors

Search for [#] to get to topic number # quickly. In newsreaders which
support digests (such as rn), [CTRL]-G will page through the answers.

Subject: [1-0] Introduction

Certain questions and topics come up frequently in the various network
discussion groups devoted to and related to Prolog and logic programming.
This file/article is an attempt to gather these questions and their
answers into a convenient reference for Prolog programmers. It (or a
reference to it) is posted periodically. The hope is that this will
cut down on the user time and network bandwidth used to post, read and
respond to the same questions over and over, as well as providing
education by answering questions some readers may not even have
thought to ask.

This guide lists Prolog and logic programming resources: archives,
newsgroups, books, magazines, compilers, interpreters and anything
else you can think of which has to do with the proliferation of Prolog
and logic programming. Also included is a list of suppliers of
products and a list of publishers. Topics can also include
unification, backtracking search, and other aspects of logic
programming. As Prolog has a strong historical tradition in Europe,
we've tried to ensure that the information is relevant to all readers,
including European and North American.

This is not a Prolog tutorial, nor is it an exhaustive list of all Prolog
intricacies. Prolog is a very powerful and expressive language, but with
that power comes many complexities. This list attempts to address the
ones that average Prolog programmers are likely to encounter. If you are
new to Prolog, read one of the introductions listed in the answer to
question [1-3].

Please do not post homework questions to the comp.lang.prolog
newsgroup. You won't learn anything if somebody else does the problem
for you, and won't get any credit for your answer if your instructor
reads the newsgroup.

Please also avoid starting the debate on which language is better;
Prolog or Lisp, Prolog or C, and so on. Such discussions are rarely
productive, and nobody will change their opinion as a result of the
debate. The usual conclusion of such debates is that the languages are
Turing equivalent, but some languages are better suited for particular
tasks. For Prolog, the consensus is that it is a good choice for
problems involving logic and problems whose solution can be
represented or characterized succinctly in logical form. Some folks
feel Prolog is the best language for natural language processing;
others disagree.

The comp.lang.prolog newsgroup is archived in
on a weekly basis.

This guide is posted regularly to comp.lang.prolog and comp.object.logic.
It may also be obtained by anonymous ftp from
ftp.cs.cmu.edu:/user/ai/pubs/faqs/prolog/ []
using username "anonymous" and password "name@host" (substitute your
email address) or via AFS in the Andrew File System directory
as the files prg_1.faq and prg_2.faq.

You can also obtain a copy of the FAQ by sending a message to
ai+q...@cs.cmu.edu with
Send PRG
in the message body.

The FAQ postings are also archived in the periodic posting archive on
rtfm.mit.edu:/pub/usenet/news.answers/prolog/ []
If you do not have anonymous ftp access, you can access the archive by
mail server as well. Send an E-mail message to
mail-...@rtfm.mit.edu with "help" and "index" in the body on
separate lines for more information.

An automatically generated HTML version of the PRG is accessible by
WWW as part of the AI-related FAQs Mosaic page. The URL for this
resource is
The direct URL for the PRG is

If you need to cite the FAQ for some reason, use the following format:
Mark Kantrowitz, "Prolog Resource Guide", comp.lang.prolog, <month>, <year>,
ftp.cs.cmu.edu:/user/ai/pubs/faqs/prolog/prg_?.faq, mkan...@cs.cmu.edu.


We have taken great care in making the information in this document as
accurate as possible. However we are not responsible for any problems
which might occur from using information supplied in this guide.

Subject: [1-1] Sources of Information about Prolog

The newsgroups comp.lang.prolog, comp.object.logic, and (to a lesser
extent) comp.ai are a source of information and discussion about Prolog.
See also sci.logic. The newsgroup comp.constraints is for information
about constraint processing languages and related topics.

A "Frequently Asked Questions" posting is posted to comp.lang.prolog
twice a month by Jamie Andrews <ja...@cs.sfu.ca>. The Prolog FAQ and this
Prolog Resource Guide are intended to complement one another.

Several WWW resources are available (see also [1-5] and [1-15]):

CMU Prolog Repository. Extensive archives of code, bibliographies,
FAQs, newsgroup postings, tech reports, and more. The URL is:

NALP: North American Logic Programming. World-wide coverage
with some emphasis on developing LP in North America. The URL is:

Logic Programming Archive at Oxford Comlab. World-wide coverage
with emphasis on Europe. The URL is:

Subject: [1-2] Prolog and Logic Programming Related Mailing Lists

Prolog and Logic Programming:
pro...@sushi.stanford.edu (general)
prolog-...@sushi.stanford.edu (nitty gritty)

All requests to be added to or deleted from this list, problems,
questions, etc., should be sent to prolog-...@sushi.stanford.edu

[The host sushi.stanford.edu no longer exists, as of 11/24/92.
Does anybody know the new location of the mailing lists?]

Lambda Prolog:

To subscribe, send mail to lprolog...@cis.upenn.edu.

mercury-...@cs.mu.oz.au (announcements)
mercur...@cs.mu.oz.au (general discussion)
To subscribe, send mail to mercury-anno...@cs.mu.oz.au
and/or mercury-us...@cs.mu.oz.au (respectively) with
"subscribe" in the message body.

Electronic Journal of Functional and Logic Programming (EJFLP)

EJFLP is a refereed journal that will be distributed for free via e-mail.
The aim of EJFLP is to create a new medium for research investigating the
integration of the functional, logic and constraint programming paradigms.

For instructions on submitting a paper, send an empty mail message with
Subject: Help
You will receive an acknowledgment of your submission within a few hours.

To subscribe to the journal, send an empty mail message to the following
You will receive an acknowledgment of your subscription within a few days.

If there are any problems with the mail-server, send mail to

The editorial board is: Rita Loogen (RWTH Aachen), Herbert Kuchen (RWTH
Aachen), Michael Hanus (MPI-Saarbruecken), Manuel MT Chakravarty (TU
Berlin), Martin Koehler (Imperial College London), Yike Guo (Imperial
College London), Mario Rodriguez-Artalejo (Univ. Madrid), Andy Krall
(TU Wien), Andy Mueck (LMU Muenchen), Tetsuo Ida (Univ. Tsukuba,
Japan), Hendrik C.R. Lock (IBM Heidelberg), Andreas Hallmann (Univ.
Dortmund), Peter Padawitz (Univ. Dortmund), Christoph Brzoska (Univ.

[The JFLP is now being published by MIT Press. Please see the JFLP web
page at the URL
or the MIT Press web page at
or send email to
for further information.]

PD...@nic.surfnet.nl is a discussion list for PDC Prolog users.

To subscribe, send mail to LIST...@nic.surfnet.nl with
SUBSCRIBE PDC-L <your full name>
in the message body.

Theorem Provers:

This (unmoderated) list is intended for announcements of interest to
people interested in automated theorem proving.

To subscribe, send your email address to theorem-pro...@ai.mit.edu.

Type Theory:

Moderated mailing list about type theory. Archived on

To subscribe, send mail to types-...@dcs.gla.ac.uk.


Moderated mailing list about logic. Archived on

To subscribe, send mail to logic-...@cs.cornell.edu

ALP (French Chapter):

La liste de diffusion "prog-logique" est le support electronique de
communication de la section francaise de l'ALP (Association for Logic
Programming), groupe de travail AFCET. Elle complete la lettre du
groupe publiee trimestriellement.

Pour vous abonner ou vous desabonner, il faut envoyer un "mail" au
serveur de listes, a l'adresse
sans sujet ni signature, et dont le corps du message contient
SUB prog-logique Prenom Nom
Un acquittement est renvoye par messagerie. Pour desabonnement, ecrit
SIGNOFF prog-logique
Les requetes envoyees directement a la liste ne seront pas prises en

Subject: [1-3] Books and Magazine Articles

A BiBTeX bibliography of Logic Programming Conferences is available by
anonymous ftp from duck.dfki.uni-sb.de. See [1-5] below.

A partially annotated bibliography of work on integrating
object-oriented and logic programming is available by anonymous ftp
from menaik.cs.ualberta.ca:/pub/oolog/ in PostScript and BibTeX
formats. Written by Vladimir Alexiev <vlad...@cs.ualberta.ca>.

The following books are regarded as popular and widely used. Also
included are some books about WAM. This is not intended to be a complete
Prolog bibliography.

Prolog Programming:

Covington, Michael A.; Nute, D.; and Vellino, A. "Prolog
Programming in Depth", Scott, Foresman & Co., 1987. ISBN 0-521-40984-5
(Out of print, but new edition coming soon. Copies of the 1987
edition are still available from the University of Georgia
Bookstore, at 706-542-7131.)
Book source code available at:

Bowen, Kenneth A. "Prolog and Expert Systems", Mcgraw-Hill, Inc.,
1991, ISBN 0-07-006731-7 ($29.95). Book source code available at:

Clocksin, W.F. and Mellish, C.S: "Programming in Prolog", 3rd Ed.
Springer Verlag, 1987. 281 pages, ISBN 0-387-17539-3 ($29).
[Basic introduction to Prolog.]

Coelho, H., and Cotta, J.C., "Prolog by Example", Springer Verlag,
1988. 381 pages, ISBN 0-387-18313-2 ($39.50).

Cooke, Daniel E., "Logic: The Basis for Understanding Prolog",
Ablex, Norwood, NJ, 1994. 224 pages, ISBN 1-56750-028-5 ($27.50).
[Intro to Prolog with a review of the basic ideas underlying the language.]

Conlon, Tom: "Programming in Parlog". Addison-Wesley, 1989,
ISBN 0-201-17450-2.

Dawe, C.M. and M.S. Dawe, "Prolog for Computer Science", Springer
Verlag, 1994. 190 pages, ISBN 0-387-19811-3 paper ($35). [Intro to
computer science using Prolog.]

Dodd, Anthony, "Prolog: A logical approach", Oxford University
Press, New York, 1990, 556 pages. ISBN 0-198-53822-7 (cloth), $52.50;
ISBN 0-198-53821-9 (paperback), $26.00.

Kluzniak and Szpakowicz: "Prolog for Programmers", Academic Press 1985

G. L. Lazarev, "Why Prolog? Justifying Logic Programming for Practical
Applications", Prentice Hall, 1989. [Software engineering bent.
Emphasizes advantages of declarative programming.]

Le, Tu Van, "Techniques of Prolog programming, with implementation
of logical negation and quantified goals", John Wiley, New York, 1993.
ISBN: 0-471-57175-X (American edition), 0-471-59970-O (International
edition). LnProlog, a Prolog interpreter that supports negative
finding queries and quantified queries is available together with
the book.

Saint-Dizier, P., "An Introduction to Programming in Prolog",
Springer Verlag, 1990. 184 pages, ISBN 0-387-97144-0 paper ($25).
[Tutorial introduction, with simple examples of AI programs and games.]

Leon Sterling, editor, "The Practice of Prolog", MIT Press, 1990.
342 pages, ISBN 0-262-19301-9, $39.95.

Advanced Prolog Programming:

O'Keefe, Richard A., "The Craft of PROLOG", MIT Press, 1990, 410 pages.
ISBN 0-262-15039-5, $42.50.

Peter Ross, "Advanced Prolog: Techniques and Examples",
Addison-Wesley, 1989, ISBN 0-201-17527-4.

Leon Sterling and Ehud Shapiro, "The Art of Prolog: Advanced
Programming Techniques", 2nd Edition, MIT Press, 1994. 688 pages,
ISBN 0-262-19338-8 ($49.95).
[Source code for the book is available in ftp.cwru.edu:/ArtOfProlog/.
There is a subdirectory for each chapter of the book containing the
text of the programs in that chapter.]

AI and Prolog:

Yoav Shoham, "Artificial Intelligence Techniques in Prolog", Morgan
Kaufmann Publishers, 1993, 400 pages. ISBN 1-55860-167-8 (paper) $39.95.
ISBN 1-55860-319-0 (cloth) $49.95. [Topics include search, backward
chaining, data-driven methods, truth maintenance, constraint
satisfaction, reasoning with uncertainty, planning, temporal
reasoning, machine learning, and natural language processing. Prolog
source for all the programs in the book is available by anonymous ftp
from unix.sri.com:/pub/shoham/]

Bratko, Ivan, "Programming in Prolog for Artificial Intelligence",
2nd Edition, Addison-Wesley, 1990. [Good introduction to Prolog and AI.
A bit large, though, for an Intro to Prolog course. Includes
discussion of the 8-queens problem.]

Dennis Merritt, "Building Expert Systems in Prolog", Springer-Verlag, 1989.
358 pages, ISBN 0-387-97016-9 hardcover ($52).
Explains how to build various expert system shells in Prolog, including
forward/backward chaining, FOOPS, rete-network, frames, solving
Rubik's cube and more. Includes complete source code listings.
(Source code from the book is also sold on disk by Amzi! Inc. and
is available by anonymous FTP from
as the files xsip.*)

Dennis Merritt: "Adventure in Prolog", Springer-Verlag, 1990.
186 papers, ISBN 0-387-97315-X hardcover ($38).
Teaches Prolog by leading the reader through the construction of an
adventure game. The exercises lead the reader through three other
programs: an intelligent database, an expert system and an order-entry
program. While most texts teach Prolog with fragments of interesting code,
this book takes a more pragmatic (as opposed to theoretical approach) and
shows the reader how to assemble complete Prolog programs.

Gazdar, G. and Mellish, C., "Natural Language Processing in Prolog:
An Introduction to Computational Linguistics", Addison-Wesley,
Reading, Massachusetts, 1989. (There are three different editions
of the book, one for Lisp, one for Prolog, and one for Pop-11.)

Fernando C.N. Pereira and Stuart M. Shieber, "Prolog and
Natural-Language Analysis", CSLI Lecture Notes Number 10, Stanford,
CA, 1987. 286 pages, ISBN 0-937073-18-0.

Michael A. Covington, "Natural Language Processing for Prolog
Programmers", Prentice-Hall, Englewood Cliffs, NJ, 1994. ISBN

Harvey Abramson and Veronica Dahl, "Logic Grammars", Springer-Verlag,
New York, 1989, 234 pages, ISBN 0-387-96961-6.

Peter Flach, "Simply Logical: Intelligent Reasoning by Example",
John Wiley & Sons, 1994, 256 pages. ISBN 0-471-94152-2 paper ($31.95).
[Covers theoretical and practical aspects of Prolog programming as well
as AI topics like knowledge representation, search, heuristics,
abduction, default reasoning, and induction. Every technique is
accompanied by a Prolog program that implements it. More information
about the book is available from
or by email from Peter...@kub.nl.]

Prolog and Object-Oriented Programming:

Chris Moss, "Prolog++ The Power of Object-Oriented and Logic
Programming", Addison-Wesley, 1994. 312 pages, ISBN 0-201-56507-2. UK
price is 21.95 pounds. [This paperback includes a special offer to
obtain a Prolog++ compiler from LPA for Windows 3.1 or Macintosh. UK
price is 29.95 pounds (plus 17.5 percent VAT) plus 5.00 pounds postage
and handling. Elsewhere the cost is $49.95 plus $8 p&h.]

Logic Programming:

Hogger, Christopher J., "Introduction to Logic Programming",
Academic Press, 1984. 278 pages. ISBN 0-12-352090-8 (alk. paper)
ISBN 0-12-352092-4 (pbk.).

Hogger, Christopher J., "Essentials of Logic Programming",
Clarendon Press, Oxford, 1990. ISBN 0-19-853820-0. [Covers both
foundations and more practical material, relating it all to Prolog.
Takes a different approach than his first intro, dividing the book
into many short "themes" instead of chapters, and including many
excercises (with some answers).]

Kowalski, R.A.: "Logic for Problem Solving", New York 1979, Elsevier Publ.

LLoyd, John: "Foundations of Logic Programming", 2nd Edition,
Springer-Verlag, 1988. (Intro to logic programming theory.)

David Maier and David S. Warren: "Computing with Logic: Logic
Programming with Prolog", Benjamin Cummings, Menlo Park, CA, 1989.

Nilsson, Ulf and Maluszynski, Jan, "Logic, Programming and Prolog",
John Wiley & Sons, 1990, ISBN 0-471-92625-6.

Subrata Kumar DAS, "Deductive Databases and Logic Programming",
Addison-Wesley Publishing Company, July 1992, 448 pages.
ISBN 0-201-56897-7.

Constraint Logic Programming and Constraint Satisfaction:

Bennaceur, Hachemi and Gerard Plateau, "An exact algorithm for the
constraint satisfaction problem: Application to logical inference",
Information Processing Letters 48(3):151-158, November 19, 1993.

Cohen, J., "Constraint Logic Programming Languages", Communciations
of the ACM 33(7):52-68, 1992. [Good introduction to CLP and
includes a historical overview.]

Freeman-Benson, B.N., Maloney, J., and Borning, A., "An Incremental
Constraint Solver", Communications of the ACM 33(1):54-63, 1990.
[Includes a good reading list on the history and applications of

Freuder, Eugene C., and Richard J. Wallace, "Partial constraint
satisfaction", Artificial Intelligence 58(1-3):21-70, December 1992.

Van Hentenryck, Pascal, "Constraint Satisfaction in Logic Programming",
MIT Press, Cambridge, MA, 1989, ISBN 0-262-08181-4.

Jaffar, Joxan and Jean-Louis Lassez, "Constraint Logic Programming", in
Proceedings of the 14th ACM Symposium on Principles of Programming
Languages (POPL), Munich, Germany, pages 111-119, 1987.
[A longer version appears in Joxan Jaffar and Jean-Louis Lassez,
"Constraint Logic Programming", Technical Report 86-74, Monash
University, Victoria, Australia, June 1986.]

Kumar, Vipin, "Algorithms for Constraint-Satisfaction Problems: A
Survey", AI Magazine 13(1):32-44, 1992.

Mackworth, Alan K., "The logic of constraint satisfaction", Artificial
Intelligence 58:3-20, 1992.

Meseguer, P., "Constraint Satisfaction Problems: An Overview", AICOM
2(1):3-17, 1989.

Steele, Guy L., "The Definition and Implementation of A Computer
Programming Language Based on Constraints", PhD thesis, MIT, 1980.

Tsang, Edward, "Foundations of Constraint Satisfaction", Academic
Press, 1993. 421 pages, ISBN 0-12-701610-4 ($75). [Good overview.]

Zhang, Ying and Alan K. Mackworth, "Constraint Programming in
Constraint Nets", in Position Papers for the First Workshop on
Principles and Practice of Constraint Programming, pages 303-312,
Newport, RI, April 28-30, 1993.

[See also the articles on Constraint Networks (pages 276-285) and
Constraint Satisfaction (pages 285-293) in Shapiro's Encyclopedia
of Artificial Intelligence.]

Prolog Implementations and WAMs:

Ait-Kaci, Hassan, "Warren's Abstract Machine: A Tutorial Reconstruction",
MIT Press, Cambridge, MA. 1991.
125 pages, ISBN 0-262-51058-8 paper ($17.50), 0-262-01123-9 cloth.

Patrice Boizumault, "The Implementation of Prolog", Princeton
University Press, Princeton, NJ, 1993. Translated by Ara M.
Djamboulian and Jamal Fattouh. ISBN 0-691-08757-1, 357 pages ($49.50).
[The interpreters developed in the book are available by anonymous
ftp from cnam.cnam.fr:/pub/Boizumault/. See [2-1].]

Campbell, J.A. (ed): "Implementations of Prolog", John Wiley, 1984

Peter M. Kogge, "The Architecture of Symbolic Computers",
McGraw-Hill, 1991. ISBN 0-07-035596-7.
Includes sections on memory management, the SECD and
Warren Abstract Machines, and overviews of the various
Lisp Machine architectures.

David Maier and David S. Warren, "Computing with Logic: Logic
Programming with Prolog", Benjamin/Commings Publishing Co., 1988.
ISBN 0-8053-6681-4.

David H. D. Warren: "An Abstract Prolog Instruction Set", Technical Note
No 309, SRI International, Menlo Park, CA, 1983.

David H. D. Warren, "Logic Programming and Compiler Writing," in
Software-Practice and Experience 10(2):97-125, 1980.

J. Cohen and T. Hickey, "Parsing and Compiling using Prolog",
ACM Transactions on Programming Languages and Systems (TOPLAS),
9(2):125-163, 1987.

J. Paakki, "Prolog in practical compiler writing", The Computer
Journal 34(1):64-72, 1991. (But see Letters to the Editor, The
Computer Journal 35(3):313, 1992.)

Jonathan P. Bowen, "From Programs to Object Code using Logic and Logic
Programming", in R. Giegerich and S. L. Graham, editors, Code
Generation -- Concepts, Tools, Techniques, pages 173-192,
Springer-Verlag, 1992.

Jonathan P. Bowen, "From Programs to Object Code and back again using
Logic Programming: Compilation and Decompilation", Journal of
Software Maintenance: Research and Practice 5(4):205-234, December 1993.

Parallel Prologs:

Gregory, Steve: "Parallel Logic Programming in Parlog: The Language
and Its Implementation", Addison-Wesley, 1987, ISBN 0-201-19241-1.

Tick, E.: "Parallel Logic Programming". MIT Press, 1991


Deville, Yves: "Logic Programming, Systematic Program Development",
International Series in Logic Programming, Addison-Wesley, 1990, 338 pages.
ISBN 0-201-17576-2.

Wolfram, D.A., "The Clausal Theory of Types", Cambridge Tracts in
Theoretical Computer Science {\bf 21}, Cambridge University Press,

Magazine Articles:

PCAI Magzine, September/October 1993. Article on exploring Prolog,
showing the first steps to four applications -- an adventure game, an
object-oriented shell, a tax program, and an animal guessing game.
An excerpt of this article is available from

BYTE Magazine, August 1987. 5 introductory articles on Prolog.
Applications include logic grammars and simulating a microprocessor.

Uwe Schreiweis: Beredte Logik, Konzepte der 'KI-Sprache" Prolog,
(Eloquent Logic, Concepts of the AI language Prolog), iX Magazine,
October 1992, pages 84-90.

Uwe Schreiweis: Basis der Fuenf, Die Sprache Prolog in der Public
Domain, (Base of the Five, Prolog in the Public Domain), iX Magazine,
October 1992, pages 92-94.

Uwe Schreiweis: Fuenfte Generation, Kommerzielle Prolog-Systeme,
(Fifth Generation, Commercial Prolog Systems), iX Magazine, October
1992, pages 96-102.

Klaus Bothe: Weniger Raum, Speicherplatzbezogener Prolog-Benchmark,
(Less Space, A Space Oriented Prolog Benchmark), iX Magazine, October
1992, pages 106-7.

Magazines Related to Prolog:

Logic Programming Newsletter (4 issues/yr)
Included with membership in the Association for Logic Programming
($30 regular, $15 students). For membership information, write to
Valerie Anderson (ALP), DoC-ICSTM, 180 Queens Gate, London SW7 2BZ,
UK, phone +44-171-594-8226, fax +44-171-589-1552, or send email
to a...@doc.ic.ac.uk. Contributions are welcome and should be sent
to Andrew Davidson <a...@cs.mu.oz.au>. Selected articles from the
newsletter are available from the WWW archive

AI Communications (4 issues/yr)
"The European Journal on Artificial Intelligence" ISSN 0921-7126,
European Coordinating Committee for Artificial Intelligence.

AI Expert (issued monthly) ISSN 0888-3785, Miller Freeman Publishers
See a copy of the magazine for list of BBS's in NA. On CompuServe: GO
AIEXPERT. Regularly reviews Prolog interpreters and compilers.
-- Ceased publication in June, 1995.

PC AI (issued bi-monthly) ISSN 0894-0711, Knowledge Technology Inc.
Regularly reviews Prolog systems and applications.
See http://www.pcai.com/pcai

Expert Systems (issued Feb, May, Aug and Nov) ISSN 0266-4720,
Learned Information (Europe) Ltd. Subscription: GBP 85 or USD 110

IEEE Expert (issued bimonthly) ISSN 0885-9000, IEEE Computer Society

The Journal of Logic Programming (issued bimonthly), (North-Holland),
Elsevier Publishing Company, ISSN 0743-1066

New Generation Computing, Springer-Verlag. (LOTS of Prolog in it.)

Subject: [1-4] Prolog and Logic Programming Associations and Journals

Members receive the ALP Newsletter.

For information on membership ($30 regular, $15 students), contact

Valerie Anderson
ALP Administrative Secretary
Department of Computing
Imperial College
180 Queen's Gate
London, SW7 2BZ, UK

Email: v...@doc.ic.ac.uk
Fax: +44 171 589 1552
Phone: +44 171 594 8226

Newsletter submissions should be sent to

Andrew Davison
Department of Computer Science
University of Melbourne
Melbourne, Victoria 3052

Email: a...@cs.mu.oz.au
Fax: +61 3 348 1184
Phone: +61 3 344 7207 / 5230
Telex: AA 35185

Subject: [1-5] FTP Archives and Other Resources

The following are achives that contain Prolog-related material, such as
code, interpreters, articles, etc. Most of the archives are ftp sites.
They are listed by domain.name and [IP Address]. To access them and
download programs type at the prompt:

ftp <site name> (or IP address)
login: "anonymous",
password: your own return email address,
cd <directory>, ls to see files,
set binary,
get <filename> to transfer file to your system
stop with quit or exit

Deviations from this general scheme may occur but the above should
work in most cases.

CMU AI Repository, Prolog Section:

The Prolog Section of the CMU Artificial Intelligence Repository
(aka "The Prolog Repository") is accessible by anonymous ftp to
ftp.cs.cmu.edu:/user/ai/lang/prolog/ []
through the AFS directory
or by WWW from the URL
and includes more than 110 megabytes of sources and other materials
of interest to Prolog programmers, including all freely
distributable implementations and many programs. The contents of the
CMU AI Repository has been keyword indexed to provide convenient
browsing of the contents.

The repository has standardized on using 'tar' for producing
archives of files and 'gzip' for compression.

To search the keyword index by mail, send a message to:
with one or more lines containing calls to the keys command, such as:
keys prolog gui
in the message body. Keywords may be regular expressions and are
compared with the index in a case-insensitive conjunctive fashion.
You'll get a response by return mail. Do not include anything else in
the Subject line of the message or in the message body. For help on
the query mail server, include:

A Mosaic interface to the keyword searching program is in the
works. We also plan to make the source code (including indexes) to
this program available, as soon as it is stable.

Most of the Prolog Section of the AI Repository appears on Prime Time
Freeware for AI, Issue 1-1, a mixed-media book/CD-ROM publication. It
includes two ISO-9660 CD-ROMs bound into a 224 page book and sells
(list) for US$60 plus applicable sales tax and shipping and handling
charges. Payable through Visa, Mastercard, postal money orders in US
funds, and checks in US funds drawn on a US bank. For more
information write to Prime Time Freeware, 370 Altair Way, Suite 150,
Sunnyvale, CA 94086 USA, call 408-433-9662, 408-433-0727 (fax),
or send email to p...@cfcl.com.

Contributions of software and other materials are always welcome but
must be accompanied by an unambiguous copyright statement that grants
permission for free use, copying, and distribution -- either a
declaration by the author that the materials are in the public domain,
that the materials are subject to the GNU General Public License (cite
version), or that the materials are subject to copyright, but the
copyright holder grants permission for free use, copying, and
distribution. (We will tell you if the copying permissions are too
restrictive for us to include the materials in the repository.)
Inclusion of materials in the repository does not modify their
copyright status in any way. Materials may be placed in:
When you put anything in this directory, please send mail to
giving us permission to distribute the files, and state whether
this permission is just for the AI Repository, or also includes
publication on the CD-ROM version (Prime Time Freeware for AI).
We would also appreciate if you would include a 0.doc file for your
package; see /user/ai/new/package.doc for a template. (If you don't
have the time to write your own, we can write it for you based on
the information in your package.)

The Prolog Section of the AI Repository is maintained by Mark Kantrowitz

Artificial Intelligence Programs:
ai.uga.edu:/pub/ []

The University of Georgia AI FTP Library contains public domain
Prologs, such as Open Prolog and ESL PD Prolog, PrEd (a small text
editor for Prolog), and some miscellaneous prolog programs in
A copy of the programs from the book by Covington, Nute, and Vellino, (see
the section on Books below), is in
and the draft ISO standard for prolog is in
Some technical reports with accompanying code are in
Other materials of interest are in
Maintained by Michael Covington <mcov...@ai.uga.edu>.

ALE (Attribute Logic Engine), a freeware system written in
Prolog, integrates phrase structure parsing and constraint logic
programming with typed feature structures as terms. Types are
arranged in an inheritance hierarchy and specified for the features
and value types for which they are appropriate. Grammars may also
interleave unification steps with logic program goal calls (as can be
done in DCGs), thus allowing parsing to be interleaved with other
system components. While ALE was developed to handle HPSG grammars,
it can also execute PATR-II grammars, DCG grammars, Prolog, Prolog-II,
and LOGIN programs, etc. Grammars and programs are specified with a
version of Rounds-Kasper Attribute Value Logic with macros and
variables. ALE supports lexical rules and empty categories for
grammars, using a bottom-up, all-paths dynamic chart parser. ALE
supports last call optimization, negation by failure and cuts in
definite clauses, which may be used independently or integrated into
grammars. The system is distributed with several sample grammars,
including a fairly comprehensive implementation of a head-driven
phrase structure grammar for English. Version 2.0 of ALE is
available free for research purposes by anonymous ftp from
as the files ale.*, or from the CMU AI Repository in
For more information write to Bob Carpenter <ca...@lcl.cmu.edu> or
Gerald Penn <pe...@lcl.cmu.edu>.

ALP-UK Library:
The best Prolog library currently is the one collected by the ALP-UK
group. It is available to members at 30 pounds sterling for a Sun
cartridge or 2 pounds/IBM DOS disk. (non-members maybe, how much?) It
contains MBs of Prolog systems (including SB Prolog), libraries
(including the Edinburgh library), benchmarks, grammars, theorem provers,
object and graphics systems etc. For more information, write to ALP-UK
Library, Sanjay Raina, Librarian, Dept. of Computer Science, University
of Bristol, University Walk, Bristol BS8 1TR, UK, call +44 0272 303030
x3304, or send email to ra...@compsci.bristol.ac.uk.

CASLOG (Complexity Analysis System for LOGic) is an experimental
semi-automatic complexity analysis system for logic programs. It can
perform the worst-case analysis for complexity measures: argument size
complexity, number of solutions complexity, and time complexity.

CASLOG extends the techniques developed for analyzing imperative and
functional languages to deal with nondeterminism and generation of
multiple solutions via backtracking in logic languages. The analyses
for different complexity measures are implemented in a unified
framework and share several common features. First, the predicates in
a program are processed in an order generated by a bottom-up
topological sorting over the call graph of the program. Second, the
complexity function for a predicate is derived from the complexity
function of its clauses by using the information about the mutual
exclusion relationships between its clauses. Third, the complexity
function for a clause is inferred based on the data dependency
relationships between its literals. Fourth, the complexity functions
for recursive clauses are in the form of difference equations and are
transformed into closed form functions using difference equation
solving techniques. This unified framework can simplify proofs of
correctness and the implementation of the algorithms.

CASLOG is available by anonymous ftp from cs.arizona.edu:/caslog/. This
is an alpha distribution, and includes CASLOG version 1.0, a
preliminary user manual, a paper on CASLOG, and a set of examples.
For more information, contact Nai-Wei Lin <nai...@cs.arizona.edu>.

Constraint Programming Paper Archive:
Aarhus University, Denmark, has established an anonymous ftp archive
for papers on "Constraint Programming" at ftp.daimi.aau.dk:/pub/CLP/.
For further information, contact Brian H. Mayoh <br...@daimi.aau.dk>.


Some constraint-related papers by a research group at the
University of Washington are available by anonymous ftp from
The papers from the 1994 Principles and Practice of Constraint
Programming Workshop are available in
There are also implementations of several constraint satisfaction
algorithms and constraint-based systems, including the DeltaBlue and
SkyBlue algorithms, the Multi-Garnet user interface toolkit, ThingLab
II, and CoolDraw (a constraint-based drawing system), in
subdirectories of
The ftp archive is also accessible via WWW:
All the source code is in the public domain. For more information,
write to Alan Borning <bor...@geoduck.cs.washington.edu>.

C implementations of a number of constraint satisfaction algorithms
are available by anonymous ftp from
Get the files README and csplib.tar.Z. The algorithms include
variations on backtracking (backjumping, backmarking, chronological
backtracking, etc.), local consistency preprocessing algorithms (e.g.,
arc consistency), and random problem generators. For more information,
write to Peter van Beek <van...@cs.ualberta.ca>.

Eden is a Poplog-based AI microworld developed by Simon Perkins,
Jocelyn Paine and Edmund Chattoe of the Oxford University Artificial
Intelligence Society. It is intended to serve as a testbed for
learning and planning programs. Programs written in Pop-11, Prolog,
Lisp, and ML control a "bug" that lives in a 2-dimensional world. Any
kind of algorithm may be used to control the bug, including genetic
algorithms, neural nets, and rule-based systems. Eden consists of a
grid of cells, each of which can contain objects such as keys, doors,
boulders and quicksand. Bug's objective is to find and eat a piece of
food which the simulator has placed somewhere within this grid. To do
this, Bug must negotiate its way towards the food while dealing
intelligently with obstacles. Eden's laws of physics allow Bug to take
one of several different actions when it encounters an object. The
simulator then works out the consequences of the chosen action on Bug
and on Eden, and displays these graphically in a Ved window. Bug's
perceptions are updated to reflect the new state of the world, and the
cycle repeats. Eden is available by anonymous ftp from the Imperial
College archive in
src.doc.ic.ac.uk:/packages/prolog-pd-software/ []
as the file eden.tar.Z. (Note: This is really a link to the
directory computing/programming/languages/prolog/pd-software/.)
Eden includes PopBeast, a simple Prolog bug which can read and
parse simple commands, extract their meaning, plan how to satisfy
these commands, and then carry out the plans.

Parts of the current Eden are coded in Pop-11, so porting it to
Prologs other than Poplog will require some effort. Most of the
recoding needed is in the grid-world simulator and the definition of
objects. Send mail to Jocelyn Paine <po...@vax.oxford.ac.uk> if
you're willing to try this.


FW_RULES is a Sicstus Prolog library providing a compiler for forward
chaining rules. The implementation is based on a non-state saving
technique coupled with an indexing mechanism on the working memory
based on C bitwise operations to achieve efficiency. The library
supports interoperability between the forward chaining language and
the underlying Prolog engine. Terms in the working memory are
represented as Prolog facts and can be accessed from Prolog to perform
deduction. It is available by anonymous FTP from
as the files README and fw_rules.tar.Z. For more information,
please write to Mauro Gaspari <gas...@cs.unibo.it>.


Hdrug is an environment to develop logic grammars, parsers, and
generators for natural languages. The package comes with a number of
example grammars, including a Categorial Grammar, a Tree Adjoining
Grammar, a Unification Grammar in the spirit of Head-driven Phrase
Structure Grammar, an Extraposition Grammar, a Definite Clause
Grammar, and a port of the HPSG grammar from Bob Carpenter's ALE
system. Each of the grammars comes with a set of parsers, such as
Earley-like chart parsers, left-corner parsers and head-driven
parsers. Some grammars come with variants of the head-driven
generator. The package allows easy comparison of different
parsers/generators, extensive possibilities of compiling feature
equations into Prolog terms, graphical (Tk), LaTeX and ordinary Prolog
output of trees, feature structures and Prolog terms, and plotted
graphs and tables of statistical information. Hdrug runs in Sicstus
Prolog and requires ProTcl and Tcl/Tk. It is available by anonymous
FTP from
or by WWW from
For more information, write to Gertjan van Noord <vann...@let.rug.nl>.

Logic Programming Bibliographies:
duck.dfki.uni-sb.de:/pub/lp-proceedings/ []

The ftp server supports tar'ing on the fly, so if you type "get
bibtex.tar" you will get a tar'ed version of the "bibtex" directory.

BibTeX entries for the proceedings of the following conferences
are included: SLP84-87,91, NACLP89-90, ILPS91, ICLP82,84,86-91,93,
JICLP92, LP88, RTA89,93, PLILP90-92, ALPUK91, ICOT92, ALP90,92,
CADE90,92, CTRS90,92, LICS86-91, UNIF89, EPIA89,91,93, TACS91,
and the following journals: JLP85-93, JAR91-93, JSC91-93, IANDC82-92.

The bibliography is mirrored by the Universidade Nova de Lisboa.
In addition, the bibliography can be searched using either WAIS or
GOPHER. To search the lp-proceedings using WAIS, use the
wais source, available from the directory of servers. To search the
lp-proceedings using GOPHER, point the client to gopher.fct.unl.pt,
and follow the directories
"Research/Bibliography/Logic Programming Proceedings".
Searching should be easier than retrieving the entire package every
time you want to locate a particular article.

Send comments and bug reports to rschei...@dfki.uni-sb.de.

Machine Learning Algorithms Implemented in Prolog:

In 1988 the Special Interest Group on Machine Learning of the German
Society for Computer Science (GI e.V.) decided to establish a library
of PROLOG implementations of Machine Learning algorithms. The library
includes - amongst others - PROLOG implementations of Winston's arch,
Becker's AQ-PROLOG, Fisher's COBWEB, Brazdil's generation of
discriminations from derivation trees, Quinlan's ID3, FOIL, IDT,
substitution matching, explanation based generalization, inverse
resolution, and Mitchell's version spaces algorithm.
All algorithms are written in Edinburgh Prolog syntax. Most of the
algorithms are copyleft under the GNU General Public License.
The programs are currently available via anonymous ftp-server from
the GMD:

ftp.gmd.de:/gmd/mlt/ML-Program-Library/ []

They are also available by surface mail from Thomas Hoppe,
Projektgruppe KIT, Technische Universitaet Berlin, Franklinstr. 28/29,
10629 Berlin, Germany. Files will be distributed via MS-DOS formated
3.5 inch floppy (double, high and extra-high density), which should
be included with your request. You can also get them by sending an email
message to Thomas Hoppe (see below).

Send additional PROLOG implementations of Machine Learning
Algorithms, complaints about them and detected bugs or problems
to Thomas Hoppe, <hop...@cs.tu-berlin.de>. Send suggestions and
complaints about the ftp library to Werner Emde, Gesellschaft
fuer Mathematik und Datenverarbeitung, Bonn, <em...@gmd.de>.

Natural Language Processing in Prolog:

The Prolog and DCG programs from Pereira and Shieber's book, "Prolog
and Natural Language Analysis", are available by anonymous ftp from
ftp.das.harvard.edu:/pub/shieber/pnla/. See the file README for the
conditions under which the material is distributed. If you retrieve
the files, please send an email message to the authors letting them
know how you plan to use them. For further information, write to
Fernando Pereira <per...@research.att.com> or Stuart Shieber

A parser for standard Prolog text written in C is available by
anonymous ftp from
It consists of only three modules (tokenizer, parser, and display
routine) and an interface module to integrate it with an existing
Prolog system. It is completely deterministic and about 10 times
faster than O'Keefe's public domain parser written in Prolog.
For more information, write to Koen De Bosschere <k...@elis.rug.ac.be>.

Partial Evaluation:

Prolog code for the partial evaluator for the flowchart language
described in Ch. 4 of "Partial Evaluation and Automatic Program
Generation" by Jones, Gomard and Sestoft is available for anonymous
ftp from
All three Futamura projections are implemented. The code has been
tested under SWI Prolog 1.5 and 1.7 and should hopefully port to other
prologs without too many problems. For more information, please
contact Zerksis Umrigar <umr...@cs.binghamton.edu>.

Pleuk Grammar Development System:

Pleuk is intended to be a shell for grammar development, in that many
different grammatical formalisms can be embedded within it.
Grammatical formalisms that currently work with Pleuk include CFG (a
simple context-free grammar system), HPSG-PL (a system for developing
HPSG-style grammars, produced at Simon Fraser University, Canada, by
Fred Popowich, Sandi Kodric and Carl Vogel), Mike (a simple
graph-based unification system, enhanced with additional operations
for the treatment of free word order proposed by Mike Reape in various
publications), SLE (a graph-based formalism enhanced with arbitrary
relations in the manner of Johnson & Rosner and Doerre & Eisele.
Delayed evaluation is used to compute infinite relations. This system
has been used for the development of several HPSG-style grammars) and
Term (a term-based unification grammar system, originally developed
for the support of Unification Categorial Grammar of Zeevat, Klein and
Calder). Sample grammars are provided for all of these formalisms.
Work continues apace on other formalisms, including Bob Carpenter's
Ale system for typed feature structures, and Veronica Dahl's Static
Discontinuity Grammars.

Pleuk requires SICStus prolog version 2.1#6 or later, plus a variety
of ancillary programs available free of charge from many FTP servers.
Pleuk is available via anonymous FTP from the University of Georgia
Artificial Intelligence FTP library
as the files pleuk.1.0.tar.Z, pleuk.PSmanuals.tar.Z, and pleuk.README.
Pleuk will also be available shortly from the Natural Language
Software Registry, German Research Institute for Artificial
Intelligence (DKFI), Saarbruecken. For more information, send email
to pl...@cogsci.ed.ac.uk.

Prolog Repository:
Established by Jocelyn Paine of Experimental Psychology, Oxford
University in 1987. The current catalogue (January 1991) contains
30 entries. For catalogue, queries and contributions contact POPX at:
popx%vax.ox...@oxmail.ox.ac.uk (internet) or
po...@uk.ac.ox.vax (janet)

FTP access is available through the Imperial College archive at
src.doc.ic.ac.uk:/packages/prolog-pd-software/ []
This is actually a link to the directory

To access it, cd to either of the above directories via
anonymous ftp. The file README gives a brief summary of the
contents of the directory and CATALOGUE gives a (long!)
description of each entry. Entries include the Logic Programming
Tutor from Paine's book, the DEC-10 public-domain library, the
Linger natural-language corrector, a simple object-oriented
add-on for Prolog, graph utilities, among other things.

Files in the archive are also available on MS-DOS floppies for a
nominal fee to cover the cost of floppies, postage, and packing.

Prolog to SQL Compiler:
The Prolog to SQL Compiler translates database access requests,
which consist of a projection term and a database goal, to the
appropriate SQL query. The compiler is written in standard Edinburgh
Prolog and has been ported to a number of Prologs. The code posted to
comp.lang.prolog works in ECRC's SEPIA Prolog, but should be easily
ported to other Prologs. A detailed tech report on the implementation
is available by email from dra...@cis.uni-muenchen.de (include
your full postal address). The compiler is copyright, but may be used
free of charge for non-commercial purposes and redistributed provided
the copyright notice is retained intact.

PSI is a handy system for the management and retrieval of your
personal data, be it addresses, CD collections, or bibliographic
references. It is intended for the non-commercial user. It may not be
as full-fledged as some data-base systems, but has some features that
you won't find in most commercial systems. Also, you may find it
easier to set up and faster to use. PSI is useful for a broad range of
data. Indexing with descriptors makes searching for the data you need
fast, and the interface to other data-base formats (import and export)
is quite powerful. PSI was written in LPA MacProlog and is a "genuine
'double clickable' Mac application". PSI runs on all Macs with System
6 or 7 in 1MB of main memory. As LPA MacProlog isn't yet 32-bit clean,
PSI isn't either. Extensive documentation and some examples are
included. PSI is available by anonymous ftp from
sumex-aim.stanford.edu:/info-mac/app/ as the file psi-23.hqx. It
was also available on a recent Nautilus CD-ROM and will be on the
first Info-Mac CD-ROM.

Queens and Knights:
Queens and Knights are favorite problems for Prolog programmers.
A collection of several implementations is available by anonymous
ftp from sics.se:/pub/muse/queensANDknights.tar.Z.uue
Write to Roland Karlsson <rol...@sics.se> for more information.

Rubik's Cube:
Amzi! Inc., the creators of Cogent Prolog, have made sources to Cube Solver
II available from their ftp site, ftp.std.com:/vendors/amzi/. It is
also available from the Prolog Repository at CMU, in
ftp.cs.cmu.edu:/user/ai/lang/prolog/code/fun/rubik/. This Prolog
program solves Rubik's Cube. The sources include a simple scrolling
interface that should work in any Edinburgh standard Prolog. Also
included is a ready-made executable for 386 and 486 PCs; it was
implemented using Cogent Prolog. For more information, write to Amzi!
Inc. (formerly Amziod) <am...@world.std.com>, 40 Samuel Prescott Dr.,
Stow, MA 01775, Tel: 508-897-7332. Fax: 508-897-2784. Their Web page is

SEL is a declarative set processing language. Its main features are
subset and equational program clauses, pattern matching over sets,
support for efficient iteration and point-wise/incremental computation
over sets, the ability to define transitive closures through circular
constraints, meta-programming and simple higher-order programming, and
a modest user-interface including tracing. The language seems
well-suited to a number of problems in graph theory, program analysis,
and discrete mathematics. The SEL compiler is written in Quintus
Prolog and the run-time system is written in C. It generates WAM-like
code, extended to deal with set-matching, memoization, and the novel
control structure of the language. SEL is available by anonymous FTP
from ftp.cs.buffalo.edu:/users/bharat/SEL2/. The FTP release comes with a
user manual, bibliography of papers (including .dvi files), several
sample programs, and source code. For further information, write to
Bharat Jayaraman <bha...@cs.buffalo.edu>.

A public-domain WAM emulator, written in C++ by Herve Touati, is
available by anonymous FTP from gatekeeper.dec.com:/pub/plan/prolog/ucb/.

Subject: [1-6] Free Object-Oriented Systems for Prolog

OL(P), Object Layer for Prolog, is an object-oriented extension to
Prolog. It provides an object-oriented structuring and reuse
mechanism for Prolog in a manner that preserves performance and
semantics. The object-oriented layer is compiled into Prolog without
introducing any side-effects. OL(P) takes the view of objects as
collections of predicates (called methods). To Prolog, OL(P) 1.1 adds
objects with methods, data encapsulation, instances, and multiple
inheritance. Object methods can access Prolog predicates and vice
versa. The OL(P) incremental compiler translates OL(P) programs to
Prolog programs that don't need runtime interpretation (e.g., no
search is needed for inheritance). OL(P) 1.1 comes with prepared
installation for SICStus Prolog and QUINTUS Prolog (both on UNIX),
documentation, simple built-in project management, some libraries,
and example programs. The source is included, so you can port OL(P)
to different platforms, different Prolog systems, and different
logic programming languages. OL(P) is available by anonymous ftp
from parcftp.xerox.com:/ftp/pub/ol/ []. Written by Markus
P.J. Fromherz <from...@parc.xerox.com>.

LogTalk is a free object oriented extension to the Prolog programming
language. It is based on a reflexive architecture intended to provide
an open system, easily tailored to user needs. It implements simple
inheritance and a delegation mechanism. Logtalk enables users to
define new types of slots, each one with its own semantics, that can
be reused by any object. It includes features for event-based
programming. This enables the creation of elegant solutions to
represent and maintain relations that restrict the internal state of
participating objects. Logtalk (and more information about it) is
available using the URL
For more information, write to the author Paulo Moura <pmo...@cygnus.uc.pt>.

See Common ESP (CESP) in [2-1] and BeBOP in [2-3].

Subject: [1-7] Commercial Object-Oriented Systems for Prolog

LAP is an object-oriented system by Elsa. For more information, write
to Elsa Software, La Grange Dame Rose, 6 ave du Marechal Juin, 92366
Meudon-La-Foret Cedex, France, call +33 (1) 46 30 24 55, fax +33 (1)
46 30 55 26, or send email to elsa!l...@uunet.uu.net.

SPIRAL is an object oriented system by CRIL for Sun3 and Sun4 under
Unix. For more information, write to CRIL, Conception et Realisation,
Industriel de Logiciel, 146 bd de Valmy 92707, Colombes Cedex, France,
call +33 1 47 69 53 67, or fax +33 1 47 69 53 99.

Quintus Prolog (see [2-2]) has an object system documented in
and in Peter Schachte's home page,
Quintus objects are updateable data structures whose slots can contain
Prolog terms. (For increased efficiency, a slot can be constrained to
hold a specific C-style type.) Because the objects are updateable,
they offer and efficient alternative to storing modifiable data in the
Prolog database.

See also LPA Prolog ++ in [2-2].

Subject: [1-8] The Prolog 1000 Database

The Prolog 1000 is a database of real Prolog applications being
assembled in conjunction with the Association for Logic Programming
(ALP) and PVG. The aim is to demonstrate how Prolog is being used in
the real world and it already contains over 500 programs with a total
of well over 2 million lines of code. The database is available for
research use in SGML format from the Imperial College archive
If you have or know about a program that might qualify for inclusion,
send an email message to Al Roth (alr...@cix.compulink.co.uk) for an
electronic entry form which only takes a few minutes to complete. Or
write to Prolog 1000, PO Box 137, Blackpool, Lancashire, FY2 0XY,
U.K., Fax: +44 253 53811 Telephone: +44 253 58081. (Floppy disks for
PC or Mac in text form are also welcome, and paper entries may also be
sent). Queries may also be addressed to: Chris Moss
(cd...@doc.ic.ac.uk), Leon Sterling (le...@alpha.ces.cwru.edu).

Subject: [1-9] X-Windows Interfaces

PI is an interface between Prolog applications and the X Window System
that aims to be independent from the Prolog engine, provided that it
has a Quintus-style foreign function interface (such as SICStus, YAP).
It is mostly written in Prolog and is divided in two libraries: (1)
Edipo, a low-level interface to the Xlib functions, and (2) Ytoolkit,
a high-level user interface toolkit that allows you to create and
manage graphical objects, define new classes of objects, and handle
user interaction. PI is available by anonymous ftp from
ftp.ncc.up.pt:/pub/prolog/pi_1.2.tar.gz and includes documentation
and some demos. Also see ytoolkit.tar.Z. PI has been tested in
Quintus Prolog 3.1.1 and SICStus 2.1 #8. Send questions, comments,
and bug reports to Ze' Paulo Leal, Universidade de Porto, Portugal,

ftp.x.org:/contrib/xwip.tar.Z (formerly export.lcs.mit.edu)

XWIP is an X Windows interface for PROLOG.

XPCE is an object-oriented X-window interface toolkit for symbolic
programming languages (Prolog and Lisp), offering a high level of
abstraction for communication with X11, Unix processes, Unix
networking facilities (sockets) and Unix files. XPCE's built-in
classes (about 150) are mostly written in C. The XPCE/Prolog
interface allows the user to create and manipulate instances of these
classes. The user can also create new XPCE classes from Prolog.
XPCE's window related classes provide various styles of menus,
primitive graphical objects, compound graphical objects and Emacs
oriented programmable text manipulation windows. The distribution
contains several demo programs, including a diagram drawing tool
(PceDraw), an animation demo, an Epoch-like editor, a graphical
interface to Unix ispell, and an online hyper-text manual for XPCE
itself. A demo version of XPCE/SWI-Prolog for Linux may be obtained
by anonymous ftp from swi.psy.uva.nl:/pub/xpce/linux/ [].
The non-demo versions (for SWI-Prolog, SICStus Prolog, Lucid Common
Lisp and LispWorks) require filling out a license and paying a fee
(see the file pub/xpce/INFO). To be added to the mailing list
xp...@swi.psy.uva.nl send mail to xpce-r...@swi.psy.uva.nl. Send
bugs to xpce...@swi.psy.uva.nl.

ProWindows 3 is a commercial version of XPCE for Quintus Prolog.
For further information, write to Simon Heywood, AI International Ltd,
The Chapel, Park View House, 1 Park View Road, Berkhamsted, Herts,
HP4 3EY, phone +44-(0)442-876722 (Sales Hotline +44 (0)442 876448),
fax +44-(0)442-877997, or send email to shey...@aiil.co.uk.


ProTcl (pronounced pro-tickle) is a Prolog interface to Tcl/Tk. It has
a very simple and lightweight interface, which allows one to evaluate
Tcl expressions from Prolog. It defines the tcl_eval/1,2 predicate
which passes the Tcl expressions to the Tcl interpreter. It has been
tested on ECLiPSe and SICStus, on a Sparc 10. ProTcl is available
by anonymous ftp from
The ProTCL home page is
Send comments and suggestions to Micha Meier <mi...@ecrc.de>.

Subject: [1-10] Is there a straight-forward way of compiling Prolog to C?

Two methods of compiling Prolog to C have been reported in the
- WAM-based approaches
- Continuation-based approaches

The WAM-based approach compiles Prolog programs into a sequence of C
function or macro calls to WAM instructions. A brief description of
this method and some results are given in the paper:

Michael R. Levy and R. Nigel Horspool, "Translating Prolog to C: a
WAM-based Approach", in Proceedings of the Second Compulog Network
Area Meeting on Programming Languages, and the Workshop on Logic
Languages in Pisa, May 1993. (Available by anonymous ftp from

The best tutorial for writing a WAM-based compiler or WAM emulator is
Hassan Ait-Kaci's book, "Warren's Abstract Machine: A Tutorial
Reconstruction" (see [1-3] above).

A "quick-and-dirty" method is to implement the WAM functions as described
in Ait-Kaci's tutorial, to label each call with a C case label, and then throw
a giant switch(P) statement around the entire sequence of calls, where P
is the WAM program counter. On return from any instruction that modifies
P, a "goto Start" must be inserted. (This method was posted by Rob
Scott, <r...@aisb.ed.ac.uk>, based on the JANUS papers by Saraswat.)

This strategy will work, but does not allow you to modularize your
prolog program. Predicates in prolog seem to generate 8 to 15 WAM
instructions per clause, so (assuming very roughly a clause per
line)you might expect your 1,000 line program to expand to a switch
statement containing up to 15,000 lines. Some C compilers can't handle
such a big switch statement.

Levy and Horspool solve this problem by compiling each Prolog
predicate to a seperate C function. A dispatch loop mechanism is used
to call the C functions. C switch statements are used only inside the
functions. A predicate that calls another predicate sets P to contain
the address of the C function that implements the called predicate,
(and sets another register called W in their scheme) and then returns
to the dispatcher instead of calling the predicate. This bypasses the
C run-time stack. This lets one exploit WAM optimizations (like LCO)
and yet retain the ability to create many modules. Their system
performs well when compared with byte-code compilers, but translated
code runs slower than code produced by native code compilers. On the
other hand, it outputs portable ANSI C that can run on any machine
with a C compiler.

Henderson, Somogyi, and Conway's paper "Compiling Logic Programs to C
using GNU C as a portable assembler"
mentions some optimizations to the above approach, and also describes
another approach used in the Mercury compiler which achieves
efficiency comparable to direct native-code generation by using GNU C
extensions. They use conditional compilation (#ifdef) to enable use
of these extensions, so the generated C code will still run on other
ANSI C compilers, although the GNU C extensions improve performance
for Mercury by nearly a factor of three.

Other approaches to translating to C use continuations. The idea here
is to translate every Prolog predicate to a C function that has
an additional argument, namely a continuation function. If the function
fails, it simply returns, but if it succeeds, it executes the continuation.
When the function regains control from the continuation, it can then try
to generate a new solution. Here are two references
that describe systems built using continuations:

J. L. Weiner and S. Ramakrishnan, "A Piggy-Back Compiler for Prolog",
in Proceedings of SIGPLAN T88 Conference on Programming Language
Design and Implementation, Atlanta, Georgia, 1988, pages 288-296.

J. L. Boyd and G. M. Karam, "Prolog in C", Carleton University,
Ottawa, 1988.

Oliver Ridoux <Olivier...@irisa.fr> reports that a
continuation-based approach works well when used to compile
LambdaProlog. His scheme translates every predicate into a function
that uses and modifies the success and failure continuations, with
recursion in the predicate becoming iteration in the continuation
passing mechanism. Inside the function one uses whichever intermediate
machine one fancies. Clauses within the function can be either the
branches of a switch statement or simply labelled when using a C
system that can store labels. This approach can still generate
monstrous C programs that blow up the C compiler, but the C programs
aren't as large as those generated by a one module to a function
scheme. Approaches that replace recursion in a predicate with
recursion in a function tend to overload the C stack and lead to
sloppy memory management. Two technical reports describing Ridoux's
approach are available by anonymous ftp from
as pm/*.ps.Z and mailv06/*.ps.Z.

Michael Covington <mcov...@ai.uga.edu> points out that a very simple
approach is to write a Prolog interpreter in C, then store the Prolog
program in that program's data! This will, of course, execute slowly.
One might imagine all sorts of other schemes. For example, a query
could be treated as a stack of "suspensions" (with the left-most goal
on top). The top suspension is executed by selecting the appropriate
clause (possibly using indexing), and then, if necessary, pushing new
suspensions on the stack (the body of the clause whose head unified
with the current suspension).

Another question to ask is this: Is there any reason why you should want to
convert Prolog to C at all? George Saab of Quintus Corp. pointed out that,
with Quintus Prolog, you can create a standard .o file from a Prolog file,
which can then be linked with your other .o files to create an executable.
What's more, your Prolog code can be called from C code and vice versa.

On ther hand, the advantage of distributing "Prolog objects" as C rather than
.o files is portability.

M. Gaspari and G. Attardi describe an approach to translating Prolog to C
based on the provision of a common runtime architecture. This is
described in

G. Attardi and M. Gaspari, "Multilanguage Interoperability", in
Proceedings of The 3rd International Symposium, PLILP 91,
Springer Verlag, LNCS #528, 1991.

[Note: Thanks to Michael Levy, Department of Computer Science,
University of Victoria, <ml...@csr.uvic.ca>, for writing this section.]

Subject: [1-11] WAM emulators and tracers

Johan Bevemyr's Luther-based WAM-tracer is available by anonymous ftp
from Uppsala University in Sweden. It includes a simple compiler from
Prolog to WAM code and a low-level WAM code tracer written in
emacs-lisp. The tracer splits the screen into regions to show
data-areas, registers, and so on. You can then step through running
the code. The tracer is available by anonymous ftp from
Documentation on the tracer is included in the distribution. The
emulator is in the /pub/WAM-emulator/ directory (and runs in SICStus
Prolog). For more information, contact Johan Bevemyr
<bev...@csd.uu.se> or <bev...@sics.se>.

Subject: [1-12] What is the Basic Andorra Model and AKL?

The Basic Andorra Model is a way to execute definite clause programs
that allows dependent and-parallelism to be exploited transparently.
It also supports nice programming techniques for search programs. The
idea is to first reduce all goals that match at most one clause. When
no such goal exists, any goal (e.g., the left-most) may be chosen.
The BAM was proposed by David H. D. Warren, and his group at Bristol
has developed an AND-OR parallel implementation called Andorra-I,
which also supports full Prolog. See, for example,

Seif Haridi and Per Brand, "Andorra Prolog, an integration of Prolog
and committed choice languages", in Proceedings of the FGCS 1988,
ICOT, Tokyo, 1988.

Vitor Santos Costa, David H. D. Warren, and Rong Yang, "Two papers on
the Andorra-I engine and preprocessor", in Proceedings of the 8th
ICLP. MIT Press, 1991.

Steve Gregory and Rong Yang, "Parallel Constraint Solving in
Andorra-I", in Proceedings of FGCS'92. ICOT, Tokyo, 1992.

AKL (Andorra Kernel Language) is a concurrent constraint programming
language that supports both Prolog-style programming and committed
choice programming. Its control of don't-know nondeterminism is based
on the Andorra model, which has been generalised to also deal with
nondeterminism encapsulated in guards and aggregates (such as bagof)
in a concurrent setting. See, for example,

Sverker Janson and Seif Haridi, "Programming Paradigms of the Andorra
Kernel Language", in Proceedings of ILPS'91. MIT Press, 1991.

Torkel Franzen, "Logical Aspects of the Andorra Kernel Language", SICS
Research Report R91:12, Swedish Institute of Computer Science, 1991.

Torkel Franzen, Seif Haridi, and Sverker Janson, "An Overview of the
Andorra Kernel Language", In LNAI (LNCS) 596, Springer-Verlag, 1992.

Sverker Janson, Johan Montelius, and Seif Haridi, "Ports for Objects
in Concurrent Logic Programs", in Research Directions in Concurrent
Object-Oriented Programming, MIT Press, 1993 (forthcoming).

The above papers on AKL are available by anonymous ftp from
An (as yet non-released) prototype implementation of AKL is available
for research purposes (contact sve...@sics.se).

Subject: [1-13] What is Constraint Logic Programming?

Constraint Logic Programming (CLP) augments Prolog by adding
constraints to the clauses. The CLP implementation solves goals in the
same manner as Prolog, but also merges the constraints associated with
each rule. If the merge succeeds, the successful goal and the
corresponding constraints are returned. If, however, the constraints
are mutually exclusive, the solution fails.

There is an extensive wide-ranging archive of material relating to
constraint logic programming at

Subject: [1-14] How do you write portable programs in Prolog?

The de-facto standard syntax for Prolog is known as the Edinburgh
standard. It is based on the syntax of DEC-10 Prolog, an early Prolog
implementation developed at the University of Edinburgh.
See question [1-1] for information on the draft ISO standard for

Unfortunately, not every Prolog implementation is Edinburgh compatible.
There also isn't any notion of read-conditionalization, like #+ and #-
*features* in Common Lisp.

One option is to use the C preprocessor on Prolog code before loading
it into Prolog. Or you could use term-expansion to roll your own
conditional compilation system. Term expanding a clause to []
effectively discards it.

Another possibility is to conditionalize the execution instead of the
compilation. The user would have to uncomment a line like one of the
% this_is(quintus).
% this_is(sicstus).
and the code would have to test for the proper literal
a :- this_is(quintus), blah, blah, blah.
a :- this_is(sicstus), blah, blah, blah.
at a slight cost in efficiency. (If you first feed the program through
a general partial evaluator, you'll get an equivalent program without
the inefficiency. Partial evaluation is in some sense a more powerful
and semantically cleaner form of source preprocessing. Given
<head> :- <condition>, <rest of body>.
If <condition> is always false, we can safely drop the clause. If
<condition> is always true, we can drop it from any clauses that
include it.)

Another possibility is Richard O'Keefe's environment package for
Prolog. It was posted to comp.lang.prolog on 1-SEP-94; a copy can be
found in

Subject: [1-15] World-Wide Web (WWW) Resources

The World Wide Web (WWW) is a hypermedia document that spans the
Internet. It uses the http (HyperText Transfer Protocol) for the
light-weight exchange of files over the Internet. NCSA Mosaic is a
World Wide Web browser developed at the National Center for
Supercomputing Applications (NCSA).

Mosaic's popularity derives, in part, from its ability to communicate
using more traditional Internet protocols like FTP, Gopher, WAIS, and
NNTP, in addition to http. Mosaic can display text, hypertext links,
and inlined graphics directly. When Mosaic encounters a file type it
can't handle internally, such as Postscript documents, mpeg movies,
sound files, and JPEG images, it uses an external viewer (or player)
like Ghostscript to handle the file. Mosaic also includes facilities
for exploring the Internet. In other words, Mosaic is an multimedia
interface to the Internet.

The hypertext documents viewed with Mosaic are written in HTML
(HyperText Markup Language), which is a subset of SGML (Standard
Generalized Markup Language). All that is needed is just a few more
improvements, such as the ability to format tables and mathematics,
and a WYSIWYG editor, for HTML to greatly facilitate electronic
journals and other publications.

NCSA Mosaic for the X Window System is available by anonymous ftp from
as source code and binaries for Sun, SGI, IBM RS/6000, DEC Alpha OSF/1, DEC
Ultrix, and HP-UX. Questions about NCSA Mosaic should be directed to
mosa...@ncsa.uiuc.edu (X-Windows version), mosai...@ncsa.uiuc.edu
(Macintosh), and mosai...@ncsa.uiuc.edu (Microsoft Windows).

An automatically generated HTML version of the PRG is accessible by
WWW as part of the AI-related FAQs Mosaic page. The URL for this
resource is
The direct URL for the PRG is

The remainder of this section lists WWW resources of interest to Prolog
and logic programming researchers, students, and practitioners.


The newsgroup comp.constraints has an ftp archive and WWW home page:

Logic Programming:

Jonathan Bowen <Jonatha...@comlab.ox.ac.uk>

[Logic Programming at IBM Research]
Peter Reintjes <rein...@watson.ibm.com>

["Issues in Implementing Logic Languages" -- overview of
state-of-art in Prolog implementation.]
Peter Van Roy <van...@dfki.uni-sb.de>

[Table of Contents from Conferences and Journals in the fields
of database systems and logic programming.]
Michael Ley <l...@nigra.Uni-Trier.DE>

Ken Bowen <k...@als.com>

Abstract Interpretation for LP Bibliography:

200 entries so far.
Marc-Michel Corsini <cor...@labri.u-bordeaux.fr>

Subject: [1-16] Prolog Job Postings

The PROLOG-JOBS mailing list exists to help programmers find Prolog
programming positions, and to help companies with Prolog programming
positions find capable Prolog programmers. (Prolog here means Prolog-like
languages, including logic programming languages.)

Material appropriate for the list includes Prolog job announcements and
should be sent to ai+prol...@cs.cmu.edu. Resumes should NOT be sent to
the list.

[Note: The 'ai+' part of the mailing list name is used for directing
submissions to the appropriate mail-server. The list is NOT restricted
to AI-related Prolog jobs -- all Prolog job announcements are welcome.]

As a matter of policy, the contents of this mailing list is
considered confidential and will not be disclosed to anybody.

To subscribe, send a message to ai+q...@cs.cmu.edu with
subscribe prolog-jobs <First Name> <Last Name>, <Affiliation/Organization>
in the message body.

(If your mailer objects to the "+", send subscription requests to
"ai+query"@cs.cmu.edu, job announcements to "ai+prolog-jobs"@cs.cmu.edu,

For help on using the query server, send mail to ai+q...@cs.cmu.edu with
in the message body.

Job postings sent to the list are automatically archived in

If you have any other questions, please send them to a...@cs.cmu.edu

Subject: [1-17] Is Prolog really used in Windows NT?


For more information, see

Dennis Merritt, "Extending C with Prolog", Dr Dobb's Journal,
August 1994, pages 78-82 and 102, 104.

D. Hovel, "Small Prolog and Windows NT Networking", Dr Dobb's Journal,
August 1994, page 80.

Subject: [1-18] History of Prolog

Van Roy, Peter, "1983-1993: The Wonder Years of Sequential Prolog
Implementation," DEC Paris Research Laboratory, Research Report 36,
December 1993.

Kowalski, Robert A., "The Early Years of Logic Programming", CACM,
January 1988, pages 38-43.

Cohen, Jacques, "A View of the origins and development of Prolog",
CACM, January 1988, pages 26-36.

Subject: [1-19] The ISO Standard for Prolog and other Prolog standards

The ISO standard for Prolog is ISO/IEC 13211-1:1995. Copies can be
purchased from national standards bodies (e.g. ANSI, AFNOR, DIN).
It defines the core features of Prolog: part 2, in preparation,
will define modules. ISO does not currently make standards available
by anonymous FTP, but the 1993 draft ISO standard for Prolog is
available by anonymous FTP from
ai.uga.edu:/pub/prolog.standard/ []
An unofficial summary of the ISO Prolog standard is available
from the same location as isoprolog.tex or isoprolog.ps.Z. Send mail
to Michael Covington <mcov...@ai.uga.edu> for more information about
his summary of the standard.

A PostScript version of the August 1995 draft for Part 2 is
available from

For more information about the ISO Prolog standardzation, write to
Roger Scowen, ISO/IEC JTC1 SC22 WG17 (Prolog) convener, 9 Birchwood
phone +44-181-979-7429, fax +44-181-287-3810,
or, preferably, send email to r...@ditc.npl.co.uk.

Richard O'Keefe's 1984 Prolog standard draft is available by anonymous
FTP from

Subject: [1-A] Acknowledgements

The original version of this guide (Version 0.6, Dec 11, 1991) was
compiled by Dag Wahlberg, Uppsala University, Sweden
<dag...@csd.uu.se>, and published in the 5(1) issue of the ALP
Newsletter (February 1992). Other people who helped with the
compilation include Chris Moss <cd...@doc.ic.ac.uk>, Mats Carlsson,
SICS <ma...@sics.se>, Michael A. Covington <mcov...@ai.uga.edu>,
Jocelyn Paine <po...@vax.ox.ac.uk>, Per G. Bilse, PDC <pd...@pdc.dk>,
David Cohen, BIM Systems Inc <d...@bim.com>, Mark Korsloot
<ma...@logic.et.tudelft.nl>, and David W. Talmage

Thanks also to Jamie Andrews <ja...@cs.sfu.ca>.

;;; *EOF*

Mark Kantrowitz

Jul 13, 1997, 3:00:00 AM7/13/97

Archive-name: prolog/resource-guide/part2
Last-Modified: Thu Mar 13 12:13:00 1997 by Mark Kantrowitz
Version: 1.35

Size: 91137 bytes, 1682 lines

;;; ****************************************************************
;;; Prolog Resource Guide ******************************************
;;; ****************************************************************

;;; prg_2.faq

This is part two of the Prolog Resource Guide. This part lists
available Prolog, logic programming, and constraint system
implementations, both free and commercial.

Send suggestions and comments to: mkant+pro...@cs.cmu.edu

Prolog Implementations (Part 2):
[2-0] General information about Prolog Implementations

[2-1] Free Prolog Implementations
[2-2] Commercial Prolog Implementations

[2-3] Free Parallel Prolog Implementations
[2-4] Commercial Parallel Prolog Implementations

[2-5] Free Constraint Systems
[2-6] Commercial Constraint Systems

[2-7] Free Logic Programming Systems
[2-8] Commercial Logic Programming Systems

[2-9] Other Commercial Prolog Products

[2-10] Prolog extensions, meta-interpreters, and pre-processors

Search for [#] to get to topic number # quickly. In newsreaders which
support digests (such as rn), [CTRL]-G will page through the answers.

Subject: [2-0] General information about Prolog Implementations

When comparing free and commercial Prolog implementations, a rule of
thumb is that commercial prolog implementations are often more robust
and better supported than the public domain and free prolog
implementations. Commercial Prolog implementations tend to have better
debugging facilities. Many of the commercial Prolog vendors offer
educational discounts to universities, and some of the commercial
Prolog implementations are rather inexpensive.

When considering a commercial Prolog implementation, be sure to ask
for current pricing information. Although we try to keep this
information up to date, there is no guarantee that it hasn't changed
in the interim. If you find that the information has changed, please
ask the vendor to send us current information.

Some research institutions make their Prolog implementations available
for a fee. We have included those implementations in the lists of
commercial Prolog implementations.

The Prolog Management Group may be contacted by email via the Secretary,
at <in...@pap.com>.

Remember when ftping compressed or compacted files (.Z, .arc, .fit,
.zip, .z, etc.) to use binary mode for retrieving the files.

Files that end with a .z suffix were compressed with the patent-free
gzip (no relation to zip). Source for gzip is available from:
as the files gzip-1.2.3.shar, gzip-1.2.3.tar,or gzip-1.2.3.msdos.exe.

Subject: [2-1] Free Prolog Implementations

The following list of free Prolog and logic programming implementations
excludes those listed in the comp.lang.lisp and comp.lang.scheme FAQs
(i.e., Prolog interpreters written in Lisp and Scheme).

Most of these Prolog implementations are available from the CMU AI
Repository, in the directory

A.D.A. Public Domain Prolog:

A rather slow implementation of Prolog for MS-DOS systems, originally
a product of Automata Design Associates (now defunct), 1570
Arran Way, Dresker, PA 19025, 215-335-5400.

Aquarius Prolog:
Aquarius Prolog is a high-performance, portable Prolog implementation
developed since 1989 by the Aquarius Project at UC/Berkeley, the Advanced
Computer Architecture Laboratory (ACAL) at the University of Southern
California (USC), and at Digital Equipment Corporation's Paris Research
Laboratory. The developers are Tom Getzinger, Ralph Clarke Haygood, and
Peter Van Roy. Aquarius Prolog includes:

- A compiler with global analysis. The compiler is built around the
Berkeley Abstract Machine (BAM) execution model for Prolog. BAM
retains desirable features of the Warren Abstract Machine (WAM),
but allows for significant further optimizations and is easier to
map onto actual general-purpose machines.

- A back-end that maps the BAM onto various actual general-purpose
machines, including MIPS R3000 (DEC Ultrix and MIPS RISC/os),
SPARC (SunOS), HP 9000 300/400 with MC68020, MC68030 or MC68040
processors (HP-UX), and Sun3 (SunOS).

- A run-time system offering substantially the same built-in
predicates and memory management as Quintus Prolog, with additions
such as two kinds of destructive assignment. Most of the built-in
predicates are written in Prolog, with little or no performance

Aquarius Prolog also includes an interpreter and documentation.
Aquarius Prolog comes in two distributions, Enduser and Full. The
latter includes full source code and implementation notes.

Aquarius Prolog may be obtained free of charge from USC, after signing
and returning a license agreement. To get the license agreement, send a
message to list...@acal-server.usc.edu with
get aquarius-info license
in the message body. To get more information about the Full and
Enduser distributions, send the listserver a message containing
one or both of the two lines:
get aquarius-info readme-full
get aquarius-info readme-enduser
To subscribe to the aquarius-prolog mailing list, send the listserver a
message with body:
subscribe aquarius-prolog <Your real name here>
To get more information about the abilities of the listserver, send it a
message with 'help' in the body.

For further information, write to University of Southern California,
Advanced Computer Architecture Laboratory (ACAL), Attn: Aquarius Prolog
Licensing, 3740 S. McClintock, Suite 131, Los Angeles, CA 90089-2561, or
send email to aqua...@acal-server.usc.edu.

Beta-Prolog (version 1.2):

Beta-Prolog is a fast and portable Prolog implementation. It consists
of an emulator of the NTOAM (matching Tree Oriented Abstract Machine)
written in C, a compiler written in Prolog that translates Prolog
programs into NTOAM instructions, and a library of built-in

Beta-Prolog has the following features:

1. It is one of the fastest emulator-based Prolog implementations.
The NTOAM inherits many good features of the WAM, but differs from
WAM-based systems in that predicate arguments are passed directly
in stack frames and only one frame is used for each predicate. For
many programs written for WAM-based systems, Beta-Prolog is faster
than emulator-based SICStus Prolog 2.1. Further speed-ups can be
achieved if these programs are rewritten into a style suitable for
Beta-Prolog by taking the NTOAM's argument passing scheme into

2. Besides Edinburgh style clauses, Beta-Prolog also accepts
matching clauses in which input and output unifications are
separated, and determinism is denoted explicitly. The compiler is
able to translate predicates in this form into matching trees and
index them using all input arguments. The compiler can compile
quite large programs in a short time because it consists of only
matching clauses.

3. It provides an interactive interface through which the
programmers can consult, compile, load, debug and run programs.

4. It provides an interface through which C functions can be
called from Prolog.

5. It provides a special data structure called state tables that
can be used to represent graphs, simple and complex domains in
constraint satisfaction problems, and situations in various
combinatorial search problems.

6. It includes a finite-domain constraint solver with which
constraint satisfaction problems can be specified declaratively.

Beta-Prolog is available by anonymous ftp from
ftp.kyutech.ac.jp:/pub/Language/prolog/ []

or from the CMU AI Repository in

The system can be installed without difficulty on any machine that
runs Unix and the cc (or gcc) C compiler. Beta-Prolog was developed by
Neng-Fa Zhou, <zh...@mse.kyutech.ac.jp>, Faculty of Computer Science
and Systems Engineering, Kyushu Institute of Technology, 680-4 Kawazu,
Iizuka, Fukuoka 820, Japan, phone 81-948-29-7774, fax 81-948-29-7760.
For more information, send mail to betap...@cad.mse.kyutech.ac.jp.

clement.info.umoncton.ca:/BinProlog3.0.tar.gz []
ftp.elis.rug.ac.be:/pub/BinProlog/ []

BinProlog replaces the WAM by a more compact continuation passing logic
engine based on a mapping of full Prolog to binary logic programs. It
includes an interface Tcl/Tk. Version 2.20 runs on Sparc, DEC Alpha,
MIPS (SGI, DEC) 68k (NeXT, Sun3), R6000 (IBM), PA-RISC (HP) and IBM PC
(386/486). The compiler makes 528 KLIPS on a Sparc 10-40 (101 KLIPS on a
NeXT) and still uses a very small (49K under Solaris 2.1) emulator,
making it among the fastest freely available C-emulated Prologs (3-5
times faster than C-Prolog, 2-3 times faster than SWI-Prolog, 1.5-2
times faster than (X)SB-prolog and close to C-emulated Sicstus 2.1.).
Comments and bug reports should be sent to Paul Tarau

BinProlog is free for reasearch and other non-profit purposes. Use in
industrial applications, licensing of C-sources, porting to other
platforms, BinProlog related support and consulting are available but
need a separate agreement. BinProlog's very small code-size and high
performances make it suitable to be integrated in industrial
C-applications that need the services of an embedded logic
programming engine.

Boizumault Prolog:
The various Prolog interpreters described in Patrice Boizumault's
book, "The Implementation of Prolog", are available by anonymous
ftp from

or from the CMU AI Repository in

The three interpreters, corresponding to appendices A through D of
the book, are written in Common Lisp. Examples which run in all the
interpreters include cryptarithms, Eliza, Sieve of Eratosthenes,
Factorial, N-Queens, and Quicksort. For more information, write to
Patrice Boizumault <bo...@math-appli-uco.fr>.

Common ESP:
CESP (Common Extended Self-contained Prolog) is an object-oriented
system by the AI Language Research Institute, Kamakura, Japan. The
binary is free for R & D use only -- send 1/4in CMT Sun3 and Sun4
(Sparc) with Sun OS R4.0.3, R4.1 or R4.1.1. For more information,
write to AI Language Research Institute Ltd, Yoshitoku Bldg, Shiba
3-15-14, Minato-Ku, Tokyo 105, Japan, fax +81 3 3456 4418, or send
email to k-h...@air.co.jp or mats...@air.co.jp.

cu-Prolog: See [2-5].

ECLiPSe (ECRC Logic Programming System) combines the functionalities
of several ECRC systems, including SEPIA (an Edinburgh-style
extensible Prolog system based on a WAM compiler), MegaLog (a database
system) and CHIP (a constraint logic programming system). ECLiPSe
includes a Prolog compiler with extended functionality that is Quintus
and SICStus compatible, a tightly connected database system based on
the BANG file system, a CLP system, and an interface to the Tcl/Tk X11
toolkit. The BANG database can store not only relations, but also any
Prolog structures and programs. The CLP system contains several
libraries with various types of constraint handling schemes, including
atomic finite domains, linear rational constraints, CHR (constraint
handling rules) and Propia (generalised propagation). It also
supports writing further extensions like new user-defined constraints
or complete new constraint solvers. ECLiPSe also includes a profiler,
user-definable syntax, metaterms as first-class citizens, coroutining,
a high-level debugger (OPIUM), a partial evaluation system (PADDY),
and unlimited precision integer and rational numbers. ECLiPSe is
available for a nominal fee of DM 300 (~$200) to all academic and
government-sponsored organizations. It is distributed in binary form
for Sun-3 and Sparc machines. Send orders or requests for further
information to eclipse...@ecrc.de or write to ECRC,
Arabellastrasse 17, 81925 Munich, Germany. The ECLiPSe documentation
(ASCII and dvi) and some shareware packages ported to ECliPSe are now

available by anonymous ftp from

To subscribe to the eclips...@ecrc.de mailing list, send mail to
eclipse...@ecrc.de. The tech support email address is

eLP (Ergo Lambda Prolog) is an interpreter written by Conal Elliott,
Frank Pfenning and Dale Miller in Common Lisp and implements the core
of lambda Prolog (higher-order hereditary Harrop formulas). It is
embedded in a larger development environment called ESS (the Ergo
Support System). eLP implements all core language feature and offers
a module system, I/O, some facilities for tracing, error handling,
arithmetic, recursive top-levels, on-line documentation and a number
of extended examples, including many programs from Amy Felty's and
John Hannan's thesis. It should run in Allegro Common Lisp, Lucid
Common Lisp, Kyoto Common Lisp, CMU Common Lisp and Ibuki Common Lisp.
The eLP implementation of lambda Prolog is no longer developed or
maintained, but it is still available via anonymous ftp from
ftp.cs.cmu.edu:/afs/cs.cmu.edu/project/ergo/export/ess/. The file
ergolisp.tar.Z contains the Ergo project's extensions to Common Lisp,
including some facilities for attributes and dealing with abstract
syntax trees. The file sb.tar.Z contains the Ergo
Parser/Unparser/Formatter generator and ab.tar.Z contains the Ergo
Attribute Grammar facility. The file elp.tar.Z contains the Ergo
implementation of lambda Prolog. To customize grammars you need the
sb.tar.Z file. When you retrieve the system, please print, fill out,
and send in a copy of the non-restrictive license you will find in the
file LICENSE. To subscribe to the e...@cs.cmu.edu mailing list, send
mail to elp-r...@cs.cmu.edu. Bugs should be sent to

ESL Prolog-2 (PD Version):
ai.uga.edu:ai.prolog/eslpdpro.zip []

A prolog for MS-DOS systems with good performance. It deviates
slightly from Edinburgh standard (strings "like this" are not lists
of ASCII codes), but you can add a declaration that makes it fully
Edinburgh-compatible. (Add the line
:- state(token_class,_,dec10).
at the beginning of the program.) It is a more limited version
of the interpreter from the Commercial Version (see [2-2] below).
[Please note that ESL Prolog is NOT a UGA product, they just run
the machine on which a copy is made available. Anyone with
questions should contact ESL in Oxford, England (see [2-2] below).
The commercial version of ESL Prolog-2 has been sold to ESI.]

Documentation is available as a 2-volume set published by Ablex
(type "prolog2" for info). ESL Prolog is also discussed
extensively in Tony Dodd's book "Prolog: A Logical Approach,"
Oxford University Press.

GOEDEL is intended to be a declarative successor to Prolog. The main
design aim of Goedel is to have functionality and expressiveness
similar to Prolog, but to have greatly improved declarative semantics
compared with Prolog. This improved declarative semantics has
substantial benefits for program construction, verification,
debugging, transformation, and so on. Considerable emphasis is placed
on Goedel's meta-logical facilities, since this is where Prolog is
most deficient. In particular, Goedel has declarative replacements
for Prolog's var, nonvar, assert, and retract. Goedel is a strongly
typed language, its type system being based on many-sorted logic with
parametric polymorphism. It has a module system, and supports floating
point numbers and infinite precision integers and rationals. It can
solve constraints over finite domains of integers and also linear
rational constraints. It supports processing of finite sets. It also
has a flexible computation rule and a pruning operator which
generalises the commit of the concurrent logic programming languages.
The release includes the Goedel system, the SAGE partial evaluator for
Goedel, a user manual, and 50 example programs. Goedel must be
compiled in SICStus Prolog 2.1 #6 or later; Sparc and Linux
executables are included in the distribution. Goedel is available by
anonymous ftp from
ftp.cs.kuleuven.ac.be:/pub/logic-prgm/goedel/ []
ftp.cs.bris.ac.uk:/goedel []
For more information, write to goe...@compsci.bristol.ac.uk. Please
send an email message to this address (with your name, institution and
address) to this address when you obtain the system. To subscribe to
the goedel...@compsci.bristol.ac.uk mailing list, send mail to
indicating that you wish to join the Goedel discussion group.
A book describing the language is now available from MIT Press:
Patricia Hill and John Lloyd, "The Godel Programming Language",
MIT Press, Cambridge, MA, 1994. ISBN 0-262-08229-2 ($45.00).

IC-Prolog II:
The emulator is available at present only in Sun-4 binary form.
Source code may be released later in the year when project

Produced by Imperial College, IC-Prolog II is a multi-threaded
Prolog system. It includes a Parlog sub-system, an interface to
TCP primitives and "mailboxes", a high level communication
system. These enable distributed applications (such as
client/server systems) to be written using logic programming.
The distribution also includes a simple expert system shell and
the preprocessor for the Prolog language extension L&O from the
book "Logic & Objects" by Frank McCabe. (The sources for the
L&O extension is also available to LPA MacProlog users in the
subdirectory 'lo'.)

See "I.C. Prolog II : a Multi-threaded Prolog System" by Damian
Chu and Keith Clark and also "IC Prolog II: a Language for
Implementing Multi-Agent Systems" by Damian Chu. Postscript
copies of these two papers may be found in the subdirectory

Standalone versions of the Parlog system for Sun-3 and Sun-4
can also be found in this directory.

Contact Damian Chu <d...@doc.ic.ac.uk> for questions about IC
Prolog II, and contact Zacharias Bobolakis <z...@doc.ic.ac.uk> for
information about L&O.

JB-Prolog 2.1.2 is a slim and powerfull prolog for the MacIntosh. Its key
features are: Arbitrary long integers, fast interpreter only, source
line debugger, user interface toolkit, persistent objects. It is
available from the CMU AI repository as
For more information contact Jan Burse, jbu...@clients.switch.ch,
XLOG, Scheuchzerstr. 67, 8006 Zrich, Switzerland.

PIE2 is a Prolog interpreter for DOS. It is available on CompuServe in
the AIEXPERT forum. PIE2.zip contains the interpreter and examples, and
PIEDOC.ZIP contains the documentation. Written by Brent Ruggles

Prolog-68 is a free WAM-based Prolog system running on Atari ST and TT
computers. Not yet finished (no floating point, some missing
built-ins). Contact Jens Kilian <je...@hpbbn.bbn.hp.com> for
information. Available by anonymous ftp from
as a ZOO archive.

Prolog/Mali is a compiler for the higher-order language Lambda-Prolog.
Lambda-Prolog is an extension of Prolog defined by Miller (Miller,
D.A., and Nadathur, G., "Higher-order logic programming", 3rd
International Conference on Logic Programming, pages 448-462, London
1986). It is an extension of Prolog where terms are simply typed
lambda terms and clauses are higher order hereditary Harrop formulas.
The main novelties are universal quantification on goals and
implication. Prolog/Mali is a complete system which includes a C
translator, a linker, libraries, runtime, and documentation, and runs
on UNIX. It requires the MALI-V06 abstract memory package.
Prolog/Mali is available by anonymous ftp from ftp.irisa.fr:/local/pm/.
Written by Pascal Brisset <pbri...@eis.enac.dgac.fr> (or <bri...@ecrc.de>)
and Olivier Ridoux (rid...@irisa.fr). To be added to the mailing list,
send mail to prolog-ma...@irisa.fr. For more information, send
mail to p...@irisa.fr.

LIFE (Logic, Inheritance, Functions, and Equations) is an experimental
programming language with a powerful facility for structured type
inheritance. It reconciles styles from functional programming, logic
programming, and object-oriented programming. It subsumes the
functionality of its precursor languages LOGIN and Le_Fun, and may be
seen as an extension of Prolog. The syntax of Wild_LIFE has been kept
as close as possible to that of the Edinburgh standard for Prolog.
LIFE offers natively high-level abstraction facilities and convenient
data and control structures particularly well-suited for AI
programming. LIFE implements a constraint logic programming language
with equality (unification) and entailment (matching) constraints over
order-sorted feature terms. The interplay of unification and matching
provides an implicit coroutining facility thanks to an automatic
suspension mechanism. This allows interleaving interpretation of
relational and functional expressions which specify structural
dependencies on objects. The Wild_LIFE interpreter is the first
implementation of the LIFE language available to the general public.
It is a product of Digital Equipment Corporation's Paris Research
Laboratory (DEC PRL). Wild_LIFE runs on MIPS/Ultrix (DECstations),
Alpha/OSF-1, SPARC/SunOS, RS/6000, and SGI machines, and should
be portable to other Unix workstations. It is implemented in C,
and includes an interface to X Windows. Wild_LIFE is available
by anonymous ftp from gatekeeper.dec.com:/pub/plan as the file
Life1.0.tar.Z. To be added to the mailing list (life-...@cs.sfu.ca),
send mail to life-user...@cs.sfu.ca. Send bug reports to

Open Prolog:
Open Prolog (OP) is a Prolog interpreter for the Apple Macintosh.

It follows the so-called 'Edinburgh' syntax and supports most standard
Prolog features, including Definite Clause Grammars.
Extra predicates can be added via drop-in external predicates, similar to
Hypercard's XCMDs.

OP will work in any Macintosh from a Macintosh Plus, and runs in
emulated mode on Power Macs.

The most recent version of Open Prolog is available by anonymous ftp
from its home site:
ftp.cs.tcd.ie:/languages/open-prolog/ []
It is also available from other sites, such as:
mac.archive.umich.edu [].

For more information, write to Michael Brady, Computer Science
Department, Trinity College, Dublin 2, IRELAND, send email to
br...@cs.tcd.ie, call +353 1 6081786, or fax +353 1 6772204.

PD Prolog 19:
wuarchive.wustl.edu:/mirrors/msdos/prolog/prolog19.arc (IBM PC)
aisun1.ai.uga.edu (

Portable Prolog System is an interpreter from the University of York.
Runs on any system having a Pascal compiler. For more information,
write to University of York, Software Distribution Officer, Department
of Computer Science, University of York, York, YO1 5DD, UK, call +44
(904) 59861, or fax +44 (904) 433744.

Qu-Prolog 3.2 and Ergo 4.0:

Qu-Prolog is a high-level language designed primarily for rapid
prototyping of interactive theorem provers and, more generally, for
symbolic computation on formal languages. Its object level includes
quantified terms and object variables. As an example, the interactive
theorem prover Ergo 4.0 is implemented in Qu-Prolog. The compactness
and high level of Ergo 4.0 source code demonstrate the advantages of
Qu-Prolog for such applications. Ergo includes a 'window inference'
method that is specifically designed to support hierarchical
goal-directed proofs and allow easy access to the context of a
subterm. Ergo also provides support for defining a variety of logics
and support for proving schematic theorems and answer extraction.
Ergo is being used to support the development of verified software.
The system has been tested only on a Sun4.
Qu-Prolog and Ergo are available by anonymous ftp from
as software/qp.tar.Z and software/Ergo.tar. The tech report
techreports/tr93-18.ps.Z describes Qu-Prolog in detail. Send comments
to Peter Robinson <p...@cs.uq.oz.au>.


Stony Brook Prolog runs on Sun4, Pyramid-98x, DEC3100, SGI Iris,
Amiga, and MS-DOS machines. Contact war...@sbcs.sunysb.edu for more
information. Two versions are available: version 2.5 is an
interpreter for Amigas and version 3.1 is an interpreter and compiler
for Unix and MSDOS/386.

SB-Hilog runs in SB-Prolog and Quintus Prolog and is available on

src.doc.ic.ac.uk [] contains SBProlog 3.1 executables for
MS-DOS/386 in /computing/programming/languages/prolog/sbprolog,
filename sbpmsdos.zip.

nic.funet.fi contains SBProlog executables for Amiga in

Modular SB-Prolog (= SB-Prolog version 3.1 plus modules) is available
by anonymous FTP from
ftp.dcs.ed.ac.uk:/pub/dts/mod-prolog.tar.Z []
Includes interpreter for SPARC. For more information, write to
Brian Paxton <mpr...@dcs.ed.ac.uk>.

[NOTE: SB-Prolog is superseded by XSB (see below) and hence is
no longer supported by Stony Brook or the University of Arizona.
The only reason to continue using SB-Prolog is for DOS, since
XSB does not run under DOS and there are currently no plans to
port it to DOS.]

The SLG system is a meta interpreter implementation of
goal-oriented deductive query processing and non-monotonic
reasoning with the following features:
* goal-oriented query evaluation of normal logic programs
under the well-founded semantics by Van Gelder, Ross
and Schliph;
* goal-oriented query evaluation of general logic programs
under the alternating fixpoint logic by Van Gelder, with
the restriction that the body of a clause has to be either
an existential conjunction of literals or a universal
disjunction of literals.
* goal-oriented query evaluation under the stable model semantics
by Gelfond and Lifchitz.
* integration with Prolog execution, and the use of Prolog syntax
for all programs.
The SLG system is freely available by anonymous ftp from Southern
Methodist University or SUNY at Stony Brook
seas.smu.edu:/pub/ []
sbcs.sunysb.edu:/pub/XSB/ []
as the file slg.tar.gz. Comments, requests, and bug reports should
be sent to Weidong Chen, <wc...@seas.smu.edu>, Computer Science and
Engineering, Southern Methodist University, Dallas, Texas 75275-0122,
phone 214-768-3097, or David Scott Warren, <war...@cs.sunysb.edu>,
Department of Computer Science, SUNY at Stony Brook, Stony Brook,
NY 11794-4400, phone 516-632-8454.

SWI Prolog:
swi.psy.uva.nl:/pub/SWI-Prolog/ [] (Main source)
Files: pl-x.y.z.tar.gz (source, currently 2.8.0)
w32plxyz.exe (self-installing Windows 95/NT version)
refman/ (preformatted reference manual)
HTMLman/ (HTML version of the manual)
WWW: http://swi.psy.uva.nl/usr/jan/SWI-Prolog.html (home)
http://www.swi.psy.uva.nl/usr/jan/SWI-Prolog/Manual/Title.html (man)
List: pro...@swi.psy.uva.nl, subscribe to prolog-...@swi.psy.uva.nl
Author: Jan Wielemaker, j...@swi.psy.uva.nl.

Features: Complete, including module system, 2-way C-interface,
garbage collector (transparent to C-code), runtime generation,
auto-loading, do-what-i-mean and a very fast compiler. Edinburgh
compatible with lots of ISO and Quintus compatible extensions.

GUI (Portable X11 and Windows) using XPCE (in part 1 of the Prolog
Resource Guide). GUI Prolog development environment is under
development. Contact prolog-...@swi.psy.uva.nl.

Platforms: Unix (SunOs, Solaris, Linux, IRIX, HPUX, AIX, OSF/1
on the DEC/Alpha and many more) Win32 (Windows 95 and NT, may
be recompiled using MSVC 4.1 for Windows 3.1 under Win32s).

Free for non-commercial use. Licenses available for commercial
use (contact prolog-...@swi.psy.uva.nl).

Toy Prolog is an interpreter written in Pascal. About 3500 lines of
source. Free with "Prolog for Programmers" by Kluzniak and Szpakowicz
(Academic Press 1985). The Atari ST version is no longer supported.

TPM (Transparent Prolog Machine) is a demo version of LPA MacProlog
with the TPM debugger included. Runs on Apple Macintosh. It is
available by anonymous FTP from hcrl.open.ac.uk:/pub/software/.

Tricia is a free Prolog high-level emulator with interpreter available
by email from Uppsala University. Tricia currently runs on the Apple
Macintosh. It used to run on Sun3, Sun4, Apollo DN-3500/4500/5500 (OS
version 10.*) and HP-730's, but support for those platforms has been
discontinued. For more information, write to Uppsala University,
Tricia project, Computing Science Department, Box 311, S-751 05
UPPSALA, Sweden, fax +46 18 511925, or email to
tricia-...@csd.uu.se. It is available by anonymous ftp from
A copy is also available in the directory
if your site runs the Andrew File System, or by anonymous ftp from

WAMCC 2.2 is a WAM-based Prolog to C compiler. It conforms more or
less to the Edinburgh standard, and includes most of the usual
built-in predicates, a top-level, a Prolog debugger and a WAM
debugger. WAMCC is designed to be easily extended (see clp(FD) in
[2-5], for example). WAMCC's speed is halfway between SICStus emulated
and SICStus native code on a Sparc (1.5 times faster and 1.5 times
slower, respectively). WAMCC requires GCC 2.4.5 or higher and has been
tested on Sparc workstations. It should be easily ported to 32-bit
machines with GCC. WAMCC is available free by anonymous ftp from
For more information, write to Daniel Diaz <Danie...@inria.fr>,
INRIA Rocquencourt, FRANCE.

XSB is a Prolog-based Logic Programming System that extends the
standard functionality of Prolog with an implementation of OLDT
(tabling) and HiLog terms. It is a descendent of PSB-Prolog and
SB-Prolog. OLDT resolution is useful for recursive query computation,
allowing programs to terminate correctly in many cases where Prolog
does not. HiLog supports a type of higher-order programming in which
predicate symbols can be variable or structured. This allows
unification to be performed on the predicate symbols themselves in
addition to the arguments of the predicates. XSB includes an
optimizing compiler, C interface, a module system, list processing
libraries, and dynamic loading. XSB is a descendant of SB-Prolog.
XSB runs on Sun3, Sun4, 386/486 PCs (Linux and 386 BSD), SGI machines
(IRIX), HP 300/400 series (HP-UX) and NeXT, and can be compiled using
either the GNU C compiler or the Sun C compiler. Porting XSB to any
32-bit machine running Unix should be straightforward. THIS IS A BETA
RELEASE. XSB is available by anonymous ftp from
sbcs.sunysb.edu:/pub/XSB/XSB.tar.Z []
For more information, write to XSB Research Group, Computer Science
Department, SUNY at Stony Brook, Stony Brook, NY 11794, or send email to

See also BeBOP and NCL in [2-3].

Subject: [2-2] Commercial Prolog Implementations

AAIS Full Control Prolog (version 3.1.3) is an Edinburgh-standard
compiler and interpreter that runs on all Apple 680x0 Macintosh computers
(from Plus through Quadras and Powerbooks). It runs under System 6
and 7 (or A/UX 3.0), requiring 4mb RAM, and is 32-bit clean. It
is built on an object-oriented kernel, includes many object-oriented
extensions to the language, functions for constructing graphical user
interfaces, direct program access to the printer for printing text or
graphics, and full support for Apple Events. There are also numerous
example programs, including source code for the AAIS Full Control
Prolog's own standard development interface, and how to interface with
Oracle databases and FileMaker Pro databses. AAIS Full Control Prolog
costs $495. For an additional $199 (and a signed license), you can get a
copy of AAIS Prolog Program Creator, an application generator/runtime
distribution system that turns Prolog programs into Macintosh
applications. For more information, write to Advanced AI Systems,
Inc., PO Box 39-0360, Mountain View, CA 94039-0360, call 415-948-8658,
fax 415-948-2486, or email AAISP...@aol.com. Earlier version (2.0)
reviewed in AI Expert, Feburary 1991.
[NOTE: Douglas Lanam, President of Advanced AI Systems, Inc.,
announced on April 1, 1994, that he would be ceasing all future
development of the product due to economic and personal reasons. The
remaining stock of AAIS Full Control Prolog and the Program Creator is
being offered on an as-is basis with no return for $99 a copy. You
can order copies by phone using your credit card.
Technical support through phone, mail, and email is continuing, but
they cannot return phone calls or faxes outside North America, so
those replies would be sent by email or snail mail.]

AIAI Edinburgh Prolog is a high level prolog emulator that runs on
Acorn R140 (RISC iX), DG AViiON (DG/VX 4.1), Vax (Berkeley Unix, VMS),
Gould Encore (Unix), HP 9000/300 (HP-UX), MIPS RISC (RiscOS), Sequent
(DYNIX V3), Sun 2,3,4 (SunOS-3,4). For more information, write to
AIAI, AI Applications Institute, Software Secretary, University of
Edinburgh, 80 South Bridge, Edinburgh EH1 1HN, UK, call +44 (31) 650
2734, fax +44 (31) 226 2730, or send email to AI...@ed.ac.uk.

ALS Prolog - Workstation is a common version running on nearly all
Unix machines (Sun 4.1.3 & Solaris; HP 9000/7xx/8xx; IBM PowerPC AIX;
SGI IRIX; NeXT; DG AViiON), on DOS and DesqView/X (PCs with 80386 -
Pentium), and on Macintosh (PowerMac and M680x0). Common price: $800
US ($880 outside US), with a 40% academic discount. Provides a
superset of Edinburgh Prolog. Includes OOP, C interface (including
embedding Prolog in C programs), Window systems interfaces (X
Windows/Motif; NextStep; MacToolbox). Student editions $59: Mac -
with interface; DOS - TTY (all PCs with DOS from 8088-Pentium; MS
Windows in a DOS window). Available from Applied Logic Systems, Inc.,
PO Box 180, Newton Centre, MA 02159, phone 617-965-9191, fax
617-965-1636. Email: in...@als.com. Send a message to in...@als.com
with subject line "HELP" to get a general information file in reply.
The URL for the WWW site is
and the anonymous FTP site is ftp.als.com.

Amzi! Prolog + Logic Server 3.3 (formerly Cogent Prolog) is an Edinburgh-
standard development system and Logic Server API for embedding Prolog
modules in C/C++, Visual Basic, Delphi, Access and other Windows 3.x, 95,
NT 3.5x, DOS and 32-bit DOS tools. Amzi! Prolog can also be extended with
your own predicates in C/C++ and Delphi. Professional, Personal and Student
Editions, $79-$598. No royalties. Also available is an interactive tutorial,
the Active Prolog Tutor ($75) and a tutorial with source code prototypes for
expert systems shells including: forward/backward chaining, frames, rete-
network and more ($94). For more information send email to
in...@amzi.com, write to Amzi! Inc., 40 Samuel Prescott Drive, Stow, MA
01775, call 508-897-7332, or fax 508-897-2784. Additional information
is also available from their anonymous FTP site
or their Web page

Arity Prolog 6.1 is an emulator with interpreter and compiler and runs on
DOS ($650), OS/2 ($1k), Windows (extra $350), OS/2 V.2, and Windows-NT.
(Note that Windows support means that you can write Prolog programs that
manipulate Windows. The Windows version of Arity Prolog does not itself
run under MS Windows.) For more information, write to Arity Corporation,
Damonmill Square, Concord, MA 01742, call 800-722-7489 (508-371-1243),
fax 508-371-1487, or send email to 73677...@compuserve.com or Paul G.
Weiss <pgw...@netcom.com>.

ProLog by BIM is a high-performance and robust implementation of the
Prolog language. It compiles to native machine code for maximum
execution speed, and provides flexible memory management with automated
expansion, shrinking, garbage collection and user-definable parameters.
The ProLog by BIM environment comprises a GUI including an execution
monitor and debugger, an on-line help facility, a extended emacs
interface and a profiler. ProLog by BIM also includes a bi-directional
external language interface, which is used for the included interfaces
to graphics, windowing and RDBMS packages. The system also comes with a
large library of Prolog source code which contains many of the most
commonly used predicates. Stand-alone run-times without royalties and
embeddability allow problem-free end-user delivery. ProLog by BIM comes
with Carmen, a WYSIWYG GUI-Generator delivering Prolog code that allows
notifiers and call-backs in Prolog and serves as a powerful
rapid-prototyping aid. ProLog by BIM runs on SPARC, INTEL PC running
Solaris 2.x, HP700 and IBM RS/6000. BIM provides both training and
consultancy on Prolog and Prolog based developments efforts. For more
information write to BIM Engineering Europe sa/nv, ProLog by BIM dept.,
avenue A. Einstein 4, B - 1348 Louvain-la-Neuve, Belgium,
call +32 10 47 06 11, fax to +32 10 47 08 11 or email to pro...@bim.be.

CIM-Prolog is a high-level emulator with interpreter for Apollo Domain
and Sun (Unix). Also Standard Prolog for Apollo Domain, IBM PC/AT (DOS),
INMOS transputer, and Sun. A parallel version is also available.
For more information, write to Creative Soft GmbH, Turnstrasse 10, D-8510
Fuerth, Germany, call +49 911 7499214, or fax +49 911 747756.

Coder's Prolog 2.0 is a Prolog Interpreter from Austin Code Works. Works
on any system with a C compiler (it is designed for use with C
programs), including IBM PCs (MS-DOS) and Unix workstations. For
more information, write to Austin Code Works, 11100 Leafwood Lane,
Austin, TX 78750-3587, call 512-258-0785, fax 512-258-1342, or send
email to in...@acw.com.

Delphia Prolog v2 is an Edinburgh-standard compiler and interpreter that
runs on Sun3, Sun4, Sparc, RS/6000, Apollo, HP9000/300, Unigraph 68xxx,
386/486 (SCO Unix), DecStation (Ultrix), Sony NEWS (Unix), VAX (VMS,
Ultrix), uVax (Ultrix), VaxStation (Ultrix). Includes database
interfaces, graphical libraries, and incremental compilation. Price
$10,000. Write to Delphia, 27 Avenue de la Republique, 38170 Seyssinet,
France, call 33-76-26-68-94 or fax 33-76-26-52-27. An earlier version
was reviewed in AI Expert, January 1991 and Feburary 1991.

ECRC SEPIA. See ECLiPSe. SEPIA is no longer delivered as a
stand-alone system, but as a part of ECLiPSe.

EDCAAD C-Prolog is a prolog interpreter for Sun (SunOS), VAX (Ultrix,
VMS), Apollo, and 68000 (Unix). An inexpensive academic license is
available. It is an interpreter-based system, and hence is slower than
WAM-based Prologs. It is implemented in C, and should run on almost
any 32-bit machine with a C compiler. For more information, write to
EdCAAD, Department of Architecture, Edinburgh University, 20 Chambers St.,
Edinburgh EH1 1JZ, UK, call +44 (31) 650 1000, fax +44 (31) 667 0141,
or send email to ch...@caad.ed.ac.uk.

FRIL (Fuzzy Relational Inference Language) is a logic-programming
language that incorporates a consistent method for handling
uncertainty, based on Baldwin's theories of support logic, mass
assignments, and evidential reasoning. Mass assignments give a
consistent way of manipulating fuzzy and probabilistic uncertainties,
enabling different forms of uncertainty to be integrated within a
single framework. Fril has a list-based syntax, similar to the early
micro-Prolog from LPA. Prolog is a special case of Fril, in which
programs involve no uncertainty. Fril runs on Unix, Macintosh, MS-DOS,
and Windows 3.1 platforms. For further information, write to Dr B.W.
Pilsworth, Fril Systems Ltd, Bristol Business Centre, Maggs House, 78
Queens Rd, Bristol BS8 1QX, UK. A longer description is available as

GT-Prolog is a high performance implementation of Edinburgh-standard
Prolog for the Commodore Amiga. GT-Prolog includes the ProBench
interactive development environment supporting incremental compilation,
a multi-port debugger based on the Byrd model, a source code editor, and
a break facility. GT-Prolog provides transparent access to sophisticated
optimization techniques including Tail Recursion Optimisation, First
Argument Indexing/Hashing, In-line Arithmetic Evaluation and automatic
Garbage Collection of code and data. Error handling is based on catch
and throw mechanisms. GT-Prolog is also one of the first implementations
to support a fully logical Prolog database. GT-Prolog provides explicit
control of memory allocation allowing programs to use up to 16mb for
data and 4gb for code and requires a minimum configuration of 1Mb memory
plus Workbench version 2 or later. GT-Prolog includes a library of more
than 120 predicates that provide user programs with access to the
facilities of AmigaDOS. The single user price is 89.95 pounds sterling
inclusive of VAT and postage/packing. For more information, write to
Graham Thwaites, Grange Technology Limited, Stream Road, Upton, Didcot,
Oxon OX11 9JG, UK, tel/fax +44-1235-851818, or send email to
gt...@gtech.demon.co.uk or 10043...@compuserve.com.

HyperProlog. See Delphia Prolog.

IBM PROLOG for AIX/6000 (PFA) is a high performance implementation of
the PROLOG language, combined with a powerful programming environment,
especially designed for the IBM RISC System/6000 under AIX. PFA was
developed by BIM as an adaptation of ProLog by BIM for the IBM RISC
System/6000 under AIX. It was selected by IBM Europe as their official
PROLOG implementation for the RISC System/6000. For more information
contact: BIM Engineering Europe sa/nv, ProLog by BIM dept., avenue A.
Einstein 4, B - 1348 Louvain-la-Neuve, Belgium, phone: +32 10 47 06 11
- fax: +32 10 47 08 11 - email: pro...@bim.be

IF/Prolog 5.0 is a Prolog compiler with a variety of highly efficient
constraint problem solving tools, including Boolean constraints,
Rational terms, Linear terms, Equations and Inequations, Finite Domain
Constraints and Co-routines. IF/Prolog conforms to the ISO Prolog
Standard, part 1. IF/Prolog also includes interfaces to C, C++,
FORTRAN, X11 (OSF/Motif and Athena widgetsets), and SQL (Ingres,
Oracle, and Informix). IF/Prolog has full screen X11 and Windows based
debuggers and online hypertext help and quick reference guide. It is
available on Unix, OSF/1, VMS, MS-Windows, and mainframe systems,
including Apollo, Aviion 300, Macintosh (A/UX), microVAX 2000
(Ultrix), Vax (Ultrix, VMS), VaxStation (Ultrix), DEC Alpha (OSF/1,
VMS), HP9000, Sun3, Sun4, Sparc, UTS, AIX/370, IBM RS/6000, Decstation
(Ultrix, OSF/1), Sequent S16, Silicon Graphics, Sony News (Unix),
Motorola, Nixdorf, Interactive Unix, SCO UNIX, DOS-based 386 PCs, and
Windows 3.0/3.1. Academic licenses are available at half price. For
more information contact Annette Kolb (marketing) or Dr. Andrew Verden
(technical) at IF Computer GmbH, Ludwig-Thoma-Weg 11a, D-82065
Baierbrunn, tel +49 89 7936 0037, fax +49 89 7936 0039, or email
pro...@mch.sni.de, or IF Computer Japan Ltd., 7/F 2nd Asanuma Bldg.,
3-21-10 Hongo, Bunkyo-ku, Tokyo 113, Japan. tel + 81 3 3818 5826 fax
+ 81 3 3818 5829. They have a web page at the URL

IQSOFT MProlog is a high-level emulator with interpreter for Unix,
Macintosh and IBM PC (DOS). Runs on Vax (Unix 4.2 BSD), 68000-based
machines (Unix), Tektronix 4404, HP3000, and Siemens 1. For more
information, write to IQSOFT, SZKI Intelligent Software Ltd., Iskola u.
10., Budapest, H-1011, Hungary, call +36 1 201 6764, fax +36 1 201 7125, or
send email to sze...@iqsoft.hu.

LPA Prolog is a 32-bit prolog compiler for IBM PCs (Windows 3.11/3.1 and
Windows95, NT) and Apple Macintosh with direct access to graphics,
menus, windows etc and incremental compilation and Edinburgh syntax
compatability. LPA Prolog++ is an object-oriented programming system
based on Prolog. (See Chris Moss's book on Prolog++ in [1-3].) flex is
an expert system shell with access to the Prolog compiler system.
MacProlog32 runs under System 7. Programmer Edition is $495 list, and the
Developer Edition, which includes a runtime generator for producing
standalone applications, is $995. LPA Prolog for Windows runs $495 and
supports DDE and DLLs, and a variety of interfaces. Prolog++ runs $795
($1,495 Developer Edition). LPA also offer the ProData Database Interface
toolkit which uses ODBC technology to join Prolog clauses to RDMS tables.
Contact vendor regarding educational discounts, site licences, and details
of low-cost Personal Edition and new fuzzy logic and data mining products.
Write to Logic Programming Associates, Ltd., Studio 4, Royal Victoria
Patriotic Building, Trinity Road, London SW18 3SX, England, call +44
(0)181-871-2016, fax +44 (0)181-874-0449, In the US call 800-949-7567.
or send email to l...@cix.compulink.co.uk (sales, tech support), or
The URL for their web page is:

Maxon Prolog is available for the Atari ST from the German magazine
'ST-Computer' for 298 DM. Tel: 010 49 61 96 481811.

MU-Prolog, NU-Prolog are prolog interpreters from the University of
Melbourne. Source licences are available for educational institutions.
Implemented in C for BSD Unix. Currently running on Sun3, Sun4, Vax,
Elxsi, Encore, and SGI. For more information, write to University of
Melbourne, MU-Prolog Distribution, Department of Computer Science,
Parkville, Victoria 3052, Australia, call +61 3 344 7270, or send email to
l...@cs.mu.oz.au or j...@cs.mu.oz.au.

ORISA of Germany offers three Prolog implementations for OS/2:
ORISApro, ORISAentry, and ORISAbase.

+ ORISApro: Interpreter, incremental compiler, debugger. Both
command line and PM front end. Supports Edinburgh syntax and
Edinburgh predicates. Wide range of built-in predicates. Interfacing to
procedural languages. API for PM applications, SOM, and SQL.
Non-standard data types include arrays, key-value lists (items),
large rational numbers, skeletons with nonatomic names, strings,
and user-defined types. Based on IBM's cancelled Prolog/2.
Costs 1000 DM (about $700). [SOM support is not yet implemented,
but should be available in a future version of ORISApro.]

+ ORISAentry: A light weight version of ORISApro, missing some of
its advanced features, like SOM support and procedural language
interface. Costs about 100 DM (about $70). Available since 1st
quarter of 1995.

+ ORISAbase: Object-oriented Prolog development environment for
Prolog based OS/2 GUI applications. Should be available in 3rd
quarter 1995, with beta testing scheduled for October 1995.
ORISAbase prices are planned to range from about
5,000 DM ($3,500) to about 100,000 DM ($70,000). The actual price
depends on the number of ordered developer and runtime licenses
and the number and type of service contracts.

For informations and orders write to
ORISA Software GmbH, Leutragraben 8a, D-07743 Jena, Germany
Fax: +49 3641 588022,
ORISA Software GmbH, Sommerrain 8, D-70839 Gerlingen, Germany
Tel/Fax: +49 7156 48808

OU Prolog is a prolog interpreter from Open University for IBM PC
(MS-DOS). Includes video, books. Ask for item PD622 and quote
reference SA69. For more information, write to Open University,
Learning Materials Sales Office, PO Box 188, Milton Keynes MK7 6DH, UK.

PDC Prolog runs on IBM PCs (DOS, OS/2, Windows and SCO Unix). Formerly
known as Turbo Prolog from Borland. Includes a native code compiler
but is incompatible with most other prologs. Its variables are
strongly typed, unlike most other prologs. For more information, write
Prolog Development Center, 568 14th Street, Atlanta, GA 30318, call
800-762-2710, (404-873-1366), fax 404-872-5243 or email
pdc-r...@pdc.dk (general information), sa...@pdc.dk (sales),
sup...@pdc.dk (tech support). European customers may write to Prolog
Development Center, A/S, H.J. Holst Vej 5A, DK-2605 Broendby, Denmark,
call +45 36 72 10 22, or fax +45 36 72 02 69. Reviewed in AI Expert
January 1991. Other email addresses include 753C...@compuserve.com.
To subscribe to the PD...@nic.surfnet.nl mailing list, a discussion
list for PDC Prolog users, send mail to LIST...@nic.surfnet.nl with

SUBSCRIBE PDC-L <your full name>
in the message body.

POPLOG is a high-level prolog emulator with interpreter for Unix. The POPLOG
environment integrates four AI programming languages in one
environment: Lisp, Prolog, ML and POP11. POPLOG can also load in C and
Fortran binaries. Runs on VAX (Ultrix, VMS), VAXStation (Ultrix),
DECStation (Ultrix), Sun 3,4, Sparc, Solbourne, HP Apollo 9000/400,
Sparc (HP-UX), MIPS (RISCOS), Sequent Symmetry (Dynix), Apple
Macintosh (AUX), SONY News (News-OS), and Silicon Graphics Iris
(Irix). The academic version from Sussex University. For more
information, write to POPLOG, Sussex University, Poplog Manager,
School of Cognitive Sciences, Falmer, Brighton BN1 9QN, UK, call +44
273 608367, fax +44 273 678188, or send email to pops...@cogs.sussex.ac.uk
or popma...@cogs.sussex.ac.uk. The commercial version is available
from Integral Solutions Ltd as Integral Poplog and Pop++. For more
information, write to Integral Solutions Ltd, Unit 3, 23 Campbell
Court, Bramley, Basingstoke Hampshire RG26 5EG, UK, call +44 256 88 20
28, fax +44 256 88 21 82, or send email to i...@integ.uucp or
i...@integ.co.uk. The North American retailer is Computable
Functions Inc. For more informatin, write to Computable Functions Inc.,
35 S. Orchard Drive, Amherst, MA 01002, call 413-253-7637, or fax
413-545-1249. Contact Robin Popplestone, p...@cs.umass.edu, for info
on a new book on Pop-11. There's a users mailing list, and a newsgroup
as well (comp.lang.pop).

Prolog-2 (Commercial Version), is a high-level emulator with
interpreter and compiler for IBM PC (MS-DOS, Windows 3.0/3.1), and
386-up. (Non-PC versions for Sun3, Sun4, HP9000 (Unix), RS/6000
(Unix), and VAX (VMS) are no longer supported, since ESI, the new
owners, are also distributors for BIM-Prolog.) It is an Edinburgh
standard prolog with a number of extensions. The windows version
includes BIPs for programming windows graphics and dialogues. For
more information, write to Expert Systems International (ESI), Attn:
Leo Mulders, PO Box 148, NL-3700 AC ZEIST, the Netherlands, call
+31-3404-22911, fax +31-3404-32888, or email <pro...@esi.nl>.

Prolog III integrates constraint programming with Prolog. It runs on
Apple Macintosh, IBM PC (386, MS-DOS), Next, Sun3, Sun4, Sparc, HP9000,
Apollo, RS/6000, Bull DPX, Masscomp (Unix), Vax (Ultrix, VMS),
DecStation and MicroVAX. For more information, write to PrologIA,
Parc Technologique de Luminy, Case 919, 13288 Marseilles cedex 09, France,
call 33-91-26-86-36, fax 33-91-41-96-37, or send email to
pro...@dcftlx.das.net or pro...@tlxf.geomail.org. The US point of contact
for Prolog III by PrologIA is BIM Systems, Inc.

Prolog-86 is available from Solution Systems Inc. For more
information, write to Solution Systems Inc., 335-D Washington Street,
Norwell, MA 02061, call 617-337-6963, or fax 617-431-8419.

PTC (Prolog To C) is a portable Prolog compiler based around an
optimized Prolog to ANSI C compiler. It runs on Sun, SGI, IBM (Unix),
and HP. PTC includes an integrated compiler/interpreter,
project-file-based compilation, a Motif user interface, editor,
debugger, online help, and support for C modules. It costs $1,495 for
the development environment and $795 for each additional runtime
library. The standalone environment is $495. For more information,
write to Paralogic Inc., 115 Research Drive, Bethlehem, PA 18015,
call 215-861-6960, fax 215-861-8247 or send email to

Quintec Prolog is a high-level emulator with interpreter for IBM PC
(MS-DOS), and Unix workstations such as Vax, VAXstation (Ultrix, VMS),
Decstation (Ultrix), and Sparc (SunOS4.0). For more information,
write to Quintec Prolog, Quintec Systems Ltd., Midland House, West Way,
Botley, Oxford OS2 0PL, UK, call +44 865 791565, or fax +44 865 791595.

Quintus Prolog is a complete Prolog development system with extensive
Prolog libraries, graphical user interface, source-linked debugger,
profiler, on-line help, interface to X Windows, and user-customizable
I/O and memory management. Quintus Prolog supports development of
stand-alone applications, as well as fully embeddable Prolog modules,
which may be called as subroutines from other languages. There are no
royalties on applications developed with Quintus Prolog. Quintus
offers Prolog-based solutions for database, expert system, and GUI
developers. Quintus also provides Prolog consulting and Prolog
training. Platforms include DEC Alpha (OSF/1), HP 9000 (HP-UX), IBM
RS/6000 (AIX), PC (DOS, Windows, Windows NT, Solaris, OS/2), Macintosh 32bit,
SGI (IRIX), Sun SPARC (SunOS, Solaris). For product information and
Prolog training schedules contact Quintus Corporation, 301 East Evelyn
Avenue, Mountain View, CA 94041, call 415-254-2800 or 800-542-1283 (US),
fax 415-428-0211, or send email to sa...@quintus.com. To be added to
the users group mailing list, email to quintus-us...@quintus.com.
The email address for technical support is tek...@quintus.com.

SICStus Prolog:

SICStus Prolog 3 is an Edinburgh compatible Prolog that runs on most
UNIX 32 and 64 bit platforms, Windows (NT and 95), MSDOS, and
Macintosh platforms. It includes a WAM-based emulator and compiler,
native code compilation for Sparc, MIPS and 680x0, indexed interpreted
and compiled predicates mixed arbitrarily, modules, term and goal
expansion hooks, support for cyclic terms, garbage collection and
stack shifting, backtrackable side-effects and mutable terms,
attributed variables and coroutining facilities, exceptions, unbounded
precision integer arithmetic, double precision floating point
arithmetic, extended set of built-in arithmetic functions, constraint
solvers for Booleans, reals, rationals and finite domains (unbundled),
support for building stand-alone applications, bidirectional C/Prolog
interface, user-defined streams and signals, a GNU Emacs interface,
execution profiling, and a "procedure box" debugger.

An OR-parallel version of the development system, MUSE, can be built
on several multiprocessor platforms.

SICStus Prolog comes with a library of utility modules implementing
commonly needed algorithms and data types, an external store for
Prolog facts with user-defined indexing, an object-oriented extension
(Prolog Objects), a package for GUI construction based in Tcl/Tk,
access to operating system services, and more.

Information about licensing, available third party software, and
useful links is available on the WWW, URL
or by writing to SICS, Swedish Institute of Computer Science, PO Box 1263,
S-164 28 KISTA, Sweden, calling +46 8 752 15 02, fax +46 8 751 72 30, or
sending email to sicstus...@sics.se or sic...@sics.se. Bug reports
and tech support questions should be sent to sicst...@sics.se. To
subscribe to the users group and implementors mailing list, send email
to sicstus-us...@sics.se.

Mixtus is an automatic partial evaluator for SICStus Prolog. Presently
it is distributed separately. Contact d...@sics.se for more information.

SNI Prolog Version 3 is an implementation of the Prolog language that
is compatible with the ISO Standard draft. It is available from
Siemens Nixdorf for Unix workstations for about DM 11100 in Germany.
SNI Prolog runs on the SGI, SNI and Sun platforms, and ports to other
systems, including MS-DOS, are in progress. Includes coroutines,
finite domains, numerical and boolean constraints, garbage collection,
incremental compilation, dynamic linking, hypertext style on-line
help, a window environment with an integrated editor, interfaces to
INFORMIX, Motif/XWindows and C. The constraint programming features of
SNI Prolog provide support for solving problems from operations
research such as dynamic resource allocation and flexible scheduling
with numerical constraints or the verification of complex systems with
Boolean constraints. For more information, write to Siemens Nixdorf
Informationssysteme AG, Otto-Hahn-Ring 6, D-8000 Munich 83, Germany,
Attn: Hans-Juergen Stenger, Systems Planning, call +49 89 636 44049,
fax +49 89 636 41208, or send email to ste...@sd235-hera.zfe.siemens.de.

SPIES YAP is a high-level emulator with interpreter for the Apple
Macintosh, Amiga (Atari ST), and Unix workstations including Sun3,
Sun4, VAXstation, SGI, and HP9000. For more information, write to
SPIES, Sociedade Portuguesa de, Importacao e Exportacao de Software,
Lda Av da Republica, 46 - 2, 1000 Lisboa, Portugal, call +351 1
795075, or fax +351 1 775891.

Turbo Prolog. See PDC Prolog.

Visual Prolog. Developed as the multi-target GUI based successor to
PDC Prolog (described above). The Standard version generates source
code compatible 16-bit GUI executables for Win3.1x, Win95, WinNT and
OS/2 PM (Prof.version only). The Professional version can be used to
generate both 16 and 32-bit applications. The O/S independent VPI
(Visual Programming Interface) combined with a host of automatic code
generation and maintenance tools and full on-line help ease the
construction of complicated applications. The Visual Prolog Web Pages
at the URL
contain product information and news as well as free Visual Prolog
tools and updates. Prolog Development Center developed the well known
(but now extinct) Turbo Prolog from Borland. For more information US
customers should call 1-800-762-2710 or 1-404-873-1366, fax
1-404-872-5243, write to Prolog Development Center, 568 14th Street,
Atlanta, GA 30318, or send email to 7530...@compuserve.com.
Customers in other countries should call +45 36 72 10 22, fax +45 36
72 02 69, write to Prolog Development Center A/S, H.J. Holst Vej 3A -
5A, DK-2605 Broendby, Denmark, or send email to sa...@pdc.dk or
sup...@pdc.dk. A BBS is run at 404-872-5358. An early version of PDC
Prolog was reviewed in AI Expert, January 1991. PDC has a forum on
CompuServe (GO PCVENB). To subscribe to the PD...@nic.surfnet.nl
mailing list, a discussion list for PDC Prolog and Visual Prolog
users, send mail to LIST...@nic.surfnet.nl with

SUBSCRIBE PDC-L <your full name>
in the message body.

XPRO 5.0 is a Prolog development environment for OS/2. It includes
a 32-bit Prolog interpreter/compiler and a rule compiler than compiles
natural language-style rules into Prolog code. Includes a C/C++
interface. Costs $299 (no runtime or license fees). For more
information, contact: Rational Vision, 7111 West Indian School Road,
Suite 131, Phoenix, AZ 85033, or phone 602-846-0371.

See also CHIP V4 from COSYTEC in [2-6].

Subject: [2-3] Free Parallel Prolog Implementations

This section contains free parallel Prolog and logic programming

Brain Aid Prolog (BAP) is a Concurrent Sequential Processes (CSP)
based standard Prolog for Transputer networks. BAP uses its own MS
Windows or X Windows server for I/O. Special features include
automatic topology adapation and concurrent source level debugging
(see several processes exchange messages). Performance is pretty high,
comparable to that of other Prolog compilers. BAP has achieved good
results (>80% efficiency) when executing applications like N-queens or
checkers in parallel on an 8 processor network. A demo version that
supports Transputer systems with a maximum of 2 processors is

available by anonymous ftp from

and also from the CMU AI Repository, in
A full version for up to 128 nodes is also available for both SUN and
PC. Write to Frank Bergmann <fra...@cs.tu-berlin.de> or
<bap_...@brainaid.in-berlin.de> for more information.

The BeBOP language combines sequential and parallel Logic Programming
(LP), object oriented programming and meta-level programming. The LP
component offers both don't know non-determinism and stream AND
parallelism, a combination not possible with concurrent LP languages.
BeBOP's object oriented features include object IDs, encapsulation,
message passing, state updating, and object behaviour modification.
The meta-level capabilities are based on the treatment of Prolog
theories as first order entities, which enables them to be updated
easily and lets fragments to be passed between objects in messages.
BeBOP is implemented by translation down to NU-Prolog, and its
parallel extension, PNU-Prolog. The BeBOP system (BeBOP and bp) and
the PNU-Prolog preprocessor pnp can be obtained by anonymous ftp from
munnari.oz.au:/pub/bebop.tar.Z []. The release comes with
a user manual, several papers (in Postscript format), sample programs,
and source code. The BeBOP system requires the NU-Prolog system,
compiler and interpreter, the pnp preprocessor (which is included as
part of the BeBOP system release), GCC or a similar compiler, Yacc (or
Bison) and Lex. For more information, contact Andrew Davison,
<a...@cs.mu.oz.au>, Dept. of Computer Science, University of Melbourne,
Parkville, Victoria 3052, Australia, call +61 3-287-9172/9101, or fax
+61 3-348-1184.

KLIC is a portable implementation of KL1 (an extended Flat GHC), a
concurrent logic programming language developed at ICOT in Japan.
Runs on Suns, HPs, DECs, and Linux PC's and marks 2 MLIPS on
SparcStation 10/30 and 4MLIPS on system with 200MHz Alpha. A
sequential version available via anonymous ftp from ftp.icot.or.jp.
Parallel versions planned shortly. A representative paper on the
language is Kazunori Ueda and Takashi Chikayama, "Design of the
Kernel Language for the Parallel Inference Machine", The Computer
Journal, December, 1990. A paper on its KLIC implementation is
Takashi Chikayama, Tetsuro Fujise and Daigo Sekita, "A Portable and
Efficient Implementation of KL1", PLILP'94 (LNCS #844,
Springer-Verlag). For more information, send an email to
klic-r...@icot.or.jp or write to ICOT Free Software Desk,
Institute for New Generation Computer Technology, 21st Floor, Mita
Kokusai Bldg., 4-28, Mita 1-chome, Minato-ku, Tokyo 108, Japan, fax

Multi-BinProlog 2.00 is a prototype Linda-style parallel extension to
BinProlog 1.71 developed by Koen De Bosschere and Paul Tarau. It uses
Koen's C-parser and C-writer which together speed-up IO considerably.
It works with shared-memory and remote procedure calls and is
available from clement.info.umoncton.ca:MultiBinProlog/
See BinProlog in [2-1] for more information.

NCL (Net-Clause Language) is aimed at describing distributed
computation models using term unification as a basic processing and
control mechanism. It is embedded in standard Prolog and comprises two
parts -- net-clauses and data-driven rules, which can communicate each
to other and to standard Prolog programs. A net-clause is a special
domain in the database defining a network of nodes and links. The
nodes are represented by Prolog compound terms. The variables
occurring within the nodes are global logical variables, which can be
shared within the scope of the net-clause thus playing the role of
network links. Two control mechanisms are implemented: a spreading
activation scheme similar to the connectionist spreading activation
and to the marker passing mechanism in SN (in logic programming it is
seen as a restricted forward chaining) and a default mechanism based
on using variables to propagate terms without being bound to them,
thus implementing the non-monotonicity of default reasoning. The
Data-driven Rules implement a full scale forward chaining for Horn
clauses. They simulate a data-driven parallel computation, where each
rule is a process (in contrast to the traditional parallel logic
programming where each goal is a process). The NCL/Prolog interpreter
along with a reference manual and a set of examples is available by
anonymous ftp at ai.uga.edu:/pub/misc/ncl.tar.Z. For more information
contact Zdravko Markov, Institute of Informatics, Bulgarian Academy of
Sciences Acad.G.Bonchev Street, Block 29A, 1113 Sofia, Bulgaria,

PCN (Program Composition Notation) is not a logic programming
language, but it has similarities to Strand and other concurrent logic
programming languages. PCN is a parallel programming system that
provides a simple language for specifying concurrent algorithms,
interfaces to Fortran and C, a portable toolkit that allows
applications to be developed on a workstation or small parallel
computer and run unchanged on supercomputers, and integrated debugging
and performance analysis tools. PCN includes a runtime system,
compiler, linker, a set of standard libraries, virtual topology tools,
a symbolic debugger (PDB), an execution profiler (Gauge), and a trace
analysis tool (Upshot). PCN was developed at Argonne National
Laboratory and the California Institute of Technology. PCN runs on
Sun4, NeXT, IBM RS/6000, SGI Iris, Intel iPSC/860, Intel Touchstone
DELTA, Sequent Symmetry running Dynix (not PTX), and should be easy to
port to other architectures. PCN is in the public domain and can be

obtained by anonymous ftp from

The distribution includes a user's guide containing a tutorial and
reference material. For further information on PCN, please send email to
<p...@mcs.anl.gov> or contact Ian Foster <fos...@mcs.anl.gov>
708-252-4619 or Steve Tuecke <tue...@mcs.anl.gov> 708-252-8711.

ROLOG is a parallel PROLOG compiler with a reduce-OR process model.
It is available by anonymous ftp from cs.uiuc.edu:/pub/ROLOG/.

See also IC-Prolog II (a multi-threaded Prolog) in [2-1].

Subject: [2-4] Commercial Parallel Prolog Implementations

This section contains commercial parallel Prolog and logic programming

Densitron CS Prolog is a parallel prolog compiler and interpreter for
IBM PCs (MS-DOS or OS/2), T414/T800 transputer (mono or multi), 386
(Unix V), uVAX (VMS), or VAX(VMS). Also standard Prolog for MS-DOS,
UNIX and VAX. For more information, write to Densitron, Unit 4,
Aiport Trading Estate, Biggin Hill, Kent, TN16 3BW, UK, call +44 959
76331, or fax +44 959 71017.

Paralogic is a parallel implementation of the Clocksin and Mellish
Prolog. It runs on DOS-based PCs or Apple Macintoshes with the INMOS
Transputers. For more information, write to Paralogic Inc., 115
Research Drive, Bethlehem, PA 18015, call 215-861-6960, fax
215-861-8247 or email plo...@lehi3b15.csee.Lehigh.edu. It is also
distributed by Computer Systems Architects, 905 N. University Avenue,
Provo, UT 84604-3422, 800-753-4272 (801-374-2300), or fax 801-374-2306
as n-parallel Prolog.

PARLOG is a parallel emulator from Imperial College for the Sequent
Balance, Sequent Symmetry, Encore Multimax, Alliant FX (Unix), Sun
(Unix, 1 processor). For more information, write to Imperial College,
Department of Computing, Parlog Distribution Secretary, 180 Queen's
Gate, London SW7 2BZ, UK, call +44 71 589 5111 x7537, fax +44 71 589
8024, or send email to par...@doc.ic.ac.uk. The single processor
versions of PARLOG for the Sun-3 and Sun-4 are now available free of
charge. Please refer to the entry regarding IC-Prolog II in this
Resource Guide. Parallel Logic Programming produces PC-PARLOG and
MacPARLOG for the IBM PC and Macintosh computers. For more
information contact Parallel Logic Programming Ltd., PO Box 49,
Twickenham, Middlesex TW2 5PH, UK or call +44 454 201 652.

Strand-88 is a parallel emulator for Sun3, Sun4, Sparc BBN Butterfly,
GPT2000, Cogent Multimax, Intel iPSC/2, iPSC/860, MIPS RiscStation,
Sequent Symmetry Balance (Unix System V or Mach, Helios) and
communication component from CSTools, Express in some cases. Also
Transputer systems PC hosted systems from Paracom, Telmat and others,
Unix hosted systems from Meiko, Paracom, Telmat and others, Apple
Macintosh, Atari ATW, and NeXT. Price dependent on configuration and
scale of target machine. For more information, write to Strand
Software Technologies Ltd., Ver House, London Rd, Markyate, Herts AL3
8JP, UK, call +44 582 842424, fax +44 582 840282, or send email to

SICS Aurora and Echo. See SICStus Prolog above.

Subject: [2-5] Free Constraint Systems

This section contains constraint systems, constraint logic programming
systems, concurrent constraint languages, and other constraint
processing systems.


CIAL 1.0b is an interval constraint logic programming language. The main
difference between CIAL and other CLP(Interval) languages is that a
linear constraint solver, which is based on preconditioned interval
Gauss-Seidel method, is embedded in CIAL in addition to the interval
narrowing solver.

The main motivations for a linear solver are:

* Pure interval narrowing fails to narrow the intervals to any useful
width even for such simple systems as {X+Y=5, X-Y=6}. Interval
splitting may help but is costly.

* Pure interval narrowing cannot always detect inconsistency or halt
(in a reasonable time). A simple example is {A+1=D, A+B=D, A>0, B<0}.

* Efficient linear constraint solver is also important to the study of
efficient non-linear constraint-solving. Recent results show that
interval Newton method works better than pure interval narrowing for
solving non-linear constraints, but may require to solve many linear
constraints in order to give the best results.

This version of CIAL prototype is implemented as an extension to CLP(R)
v1.2 and tested on Sun Sparc machines. You should have obtained CLP(R)
from IBM prior to installing CIAL. The distribution is in the form of
patches to the CLP(R) sources. [See entry on CLP(R) below].
Send email to ci...@cs.cuhk.hk to request CIAL, and for more details.

Relevant papers include

C.K. Chiu and J.H.M. Lee, "Towards practical interval constraint solving
in logic programming", in Proceedings of the Eleventh International
Logic Programming Symposium, Ithaca, NY, USA, November 1994 (to appear).

J.H.M. Lee and T.W. Lee, "A WAM-based abstract machine for interval
constraint logic programming and the multiple-trailing problem", in
Proceedings Sixth IEEE International Conference on Tools with
Artificial Intelligence, New Orleans, Nov 1994.

cu-Prolog is an experimental constraint logic programming language
available free from Japan's Institute for New Generation Computer
Technology (ICOT). Unlike most conventional CLP systems, cu-Prolog
allows user-defined predicates as constraints and is suitable for
implementing a natural language processing system based on the
unification-based grammar. For example, the cu-Prolog developers
implemented a JPSG (Japanese Phrase Structure Grammar) parser in
cu-Prolog with the JPSG Working Group (the chairman is Prof. GUNJI,
Takao of Osaka University) at ICOT. cu-Prolog is a complete
implementation of Constraint Unification (cu), hence the name.
cu-Prolog is implemented in C for BSD UNIX 4.2/3. Professor Sirai of
Chukyo-University has also implemented cu-Prolog for the Apple
Macintosh and DJ's GPP (80386/486 MS-DOS machine with the DOS
extender). cu-Prolog is available free by anonymous ftp from
ftp.icot.or.jp. For further information, send email to i...@icot.or.jp,
or write to ICOT Free Software Desk, Institute for New Generation
Computer Technology, 21st Floor, Mita Kokusai Bldg., 4-28, Mita
1-chome, Minato-ku, Tokyo 108, Japan, fax +81-3-3456-1618.

clp(FD) 2.2 is a constraint logic programming language over finite
domains and booleans based on the wamcc Prolog compiler (see [2-1]).
clp(FD) provides several constraints "a la CHIP" on finite domains and
booleans and some facilities for building new constraints. clp(FD) is
4 times faster than CHIP v3.2 on average. clp(FD) requires GCC 2.4.5
or higher and has been tested on Sparc workstations, DEC (Ultrix),
Sony MIPS (R3000), and 386/486 PCs under linux. It should be
easily ported to 32-bit machines with GCC. clp(FD) is available free
by anonymous ftp from
For more information, write to Daniel Diaz <Danie...@inria.fr>,
INRIA Rocquencourt, FRANCE.

CLP(R) is a constraint logic programming language with real-arithmetic
constraints. The implementation contains a built-in constraint solver
which deals with linear arithmetic and contains a mechanism for delaying
nonlinear constraints until they become linear. Since CLP(R) subsumes
PROLOG, the system is also usable as a general-purpose logic programming
language. It includes facilities for meta-programming with constraints.
The system consists of a compiler, byte-code emulator, and constraint
solver. CLP(R) is written entirely in C and runs on Suns, Vaxen,
MIPS-based machines (Decstations, Silicon Graphics), IBM RS6000s and
PS2s. Includes MS-DOS support. It is available free from IBM for
academic and research purposes only. To get a copy, write
to Joxan Jaffar, H1-D48, IBM Thomas J. Watson Research Center,
P.O. Box 704, Yorktown Heights, NY 10598, or send email to
jo...@watson.ibm.com or jo...@yktvmh.bitnet. Current version 1.2.
For more information, write to Joxan or Roland Yap

Oz is a concurrent constraint programming language designed for
applications that require complex symbolic computations, organization
into multiple agents, and soft real-time control. It is based on a
computation model that provides a uniform foundation for higher-order
functional programming, constraint logic programming, and concurrent
objects with multiple inheritance. From functional languages Oz
inherits full compositionality, and from logic languages Oz inherits
logic variables and constraints (including feature and finite domain
constraints). Search in Oz is encapsulated (no backtracking) and
includes one, best and all solution strategies.

DFKI Oz is an interactive implementation of Oz featuring a programming
interface based on GNU Emacs, a concurrent browser, an object-oriented
interface to Tcl/Tk, powerful interoperability features (sockets, C,
C++), an incremental compiler, a garbage collector, and support for
stand-alone applications. Performance is competitive with commercial
Prolog and Lisp systems. DFKI Oz is available for many platforms
running Unix/X, including Sparcs and 486 PCs.

Applications DFKI Oz has already been used for include simulations,
multi-agent systems, natural language processing, virtual reality,
graphical user interfaces, scheduling, placement problems, and

Version 1.0 of DFKI Oz has been released on January 23, 1995. DFKI Oz

is available by anonymous ftp from

or through the WWW from
Tutorials, reference manuals, and research papers are available from
the same locations. You may start with "A Survey of Oz" (8 pages) and
continue with "An Oz Primer" (110 pages). Questions may be directed to
o...@dfki.uni-sb.de. To join the Oz users mailing list, contact

See also ECLiPSe, Beta-Prolog, and LIFE in [2-1] and ALE in [1-5].

Subject: [2-6] Commercial Constraint Systems

This section contains constraint systems, constraint logic programming
systems, concurrent constraint languages, and other constraint
processing systems.

CHIP V4 (Constraint Handling In Prolog) is designed as an extension to
Prolog offering three constraint solving domains: Integers, Rationals
and Booleans. The system was originally developed at ECRC in Munich
and now extended by the same team at COSYTEC in Paris. CHIP V4
includes extensions to the three domains: symbolic constraints, update
demons and cumulative constraints. The system is available with
optional interfaces for X11 and DOS graphics (XGIP), Oracle or Ingres
database connection (QUIC), C language interface (CLIC) and embedded
application interface (EMC). CHIP V4 is written completely in C, and
is available on a range of workstations including SunSparc (SunOS
4.1), IBM RS6000 (AIX 3.2), HP 9000/700 series (HPUX 9.0) and
Decstation 3000 & 5000 (Ultrix 4.2) and PC386/486 (Dos 5.0).
Development and Runtime licences can be purchased for single-user,
multi-user or site licences together with support and maintenance. An
academic discount is offered for educational and research purposes.
For more information contact COSYTEC, Parc Club Orsay Universite 4 rue
Jean Rostand, 91893 Orsay Cedex, France, phone +33-1-60-19-37-38, fax
+33-1-60-19-36-20 or email <cos...@cosytec.fr>. The Tech Support
email address is he...@cosytec.fr. COSYTEC is a founding
member of the PVG (Prolog Vendors Group).

CLP(R) is a constraint system from Monash University for VAX, Sun, and
Pyramid (Unix). Costs $150. For more information, write to Monash
University, CLP(R) Distribution, Department of Computer Science,
Clayton, Victoria 3168, Australia, or send email to

CLP(RI) is a Prolog-based Constraint Logic Programming (CLP) language
whose constraint-handling applies to arithmetic on Real Intervals
(RI). It is available on the Macintosh (PowerMac and M680x0 - all
versions from 1 MB Mac Plus up). The constraint system allows users to
express both non-linear and linear equations as constraint relations.
Includes a four-port debugger, foreign language interfaces (C and
Pascal), freeze/delay, tasking, and a high-level extensible GUI tool.
Further information and on-line manuals available on the Web site.
Price: $75 US ($80 outside US). Available from Applied Logic Systems,
Inc., PO Box 180, Newton Centre, MA 02159, phone 617-965-9191, fax
617-965-1636. Email: in...@als.com. Send a message to in...@als.com
with subject line "HELP" to get a general information file in reply.
The URL for the WWW site is
and the anonymous FTP site is ftp.als.com.

ILOG SOLVER (formerly called PECOS) is a C++ library that implements a
CLP (Constraint Logic Programming) instance known as finite domains.
It is available on most Unix platforms, including Sun, HP, IBM
RS-6000, DEC, and SGI, and on Windows 3.1 for both Microsoft Visual
C++ and Borland C++. This library includes:
- Prolog control structures: non determinism, choice points,
backtracking and cut. Modification of user-defined objects can be
trailed so that their state is restored when a failure occurs.
- Finite domain logical variables, and associated constraints.
- Finite set logical variables and associated constraints.
- Interval floating point variables, and associated
constraints, analogous to what is found in BNR Prolog.
- Predefined search and optimization algorithms.
ILOG SOLVER does not use unification for passing arguments. This
enables a smooth integration with C++. For further information: In the
USA and Canada, contact ILOG, Inc., 2073 Landings Drive, Mountain
View, CA 94303, phone (415) 390-9000, fax (415) 390-0946, e-mail
in...@ilog.com. Outside the USA and Canada: contact ILOG SA, 12 avenue
Raspail, 94251 Gentilly Cedex, France, tel (+33 1) 4740-8000,
fax (+33 1) 4740-0444, e-mail in...@ilog.fr, or URL
See also http://www.ilog.fr for some papers about Ilog Solver and Ilog

VS Trilogy is a Prolog compiler available from Vertical Software for
$395. For more information, write to Vertical Software Ltd., 14-636
Clyde Ave, W. Vancouver, BC, V7T 1E1, Canada, call 604-925-0321, or fax

See also Prolog III and SNI Prolog in [2-2].

Subject: [2-7] Free Logic Programming Systems

ALF (Algebraic Logic Functional programming language) is a
language which combines functional and logic programming techniques.
The foundation of ALF is Horn clause logic with equality which
consists of predicates and Horn clauses for logic programming, and
functions and equations for functional programming. The abstract
machine is based on the Warren Abstract Machine (WAM) with several
extensions to implement narrowing and rewriting. In the current
implementation programs of this abstract machine are executed by an
emulator written in C. It is available by anonymous ftp from
(aka simpson.germany.eu.net) as the files alf_*.zoo
(Documentation, C sources for the emulator, the preprocessor and the
compiler). For further information, contact Rudolf Opalla

CORAL is a deductive database/logic programming system developed at
the University of Wisconsin-Madison. It is a declarative language
based on Horn-clause rules with extensions like SQL's group-by and
aggregation operators, and uses a Prolog-like syntax.

CORAL is available via anonymous ftp from ftp.cs.wisc.edu:/coral/. The
distribution includes source code compatible with AT&T C++ Version 2.0
or later, executables for Decstations and SUN 4s, the CORAL User
Manual, and some related papers containing a language overview and
implementation details. (A version of the source code compatible with
GNU g++ will be available shortly.) For more information, contact
Raghu Ramakrishnan, <ra...@ricotta.cs.wisc.edu>.

Lolli is an interpreter for logic programming based on linear logic
principles. Lolli, named for the linear logic implication operator
"-o" called lollipop, is a full implementation of the language
described in the paper "Logic Programming in a Fragment of
Intuitionistic Linear Logic" (Josh Hodas & Dale Miller, to appear in
Information and Computation), though it differs a bit in syntax, and
has several built-in extra-logical predicates and operators. Lolli is

available by anonymous ftp from

This distribution includes full ML source, along with a Makefile, as well
as several background papers and a collection of example programs. For
those who do not have SML-NJ at their site, the authors hope to
provide pre-built binaries for a variety of architectures. These
binaries can be found on
At present Sparc and NeXT binaries are available. If you compile
lolli on a new architecture, please contact Josh Hodas at
<ho...@saul.cis.upenn.edu> so that he can make your binary available.

Mercury is a new, purely declarative logic programming language.
Like Prolog and other existing logic programming languages, it is a
very high-level language that allows programmers to concentrate on the
problem rather than the low-level details such as memory management.
Unlike Prolog, which is oriented towards exploratory programming,
Mercury is designed for the construction of large, reliable, efficient
software systems by teams of programmers. As a consequence,
programming in Mercury has a different flavor than programming in

The main features of Mercury are:

- Mercury is purely declarative: predicates in Mercury do not
have non-logical side effects.
- Mercury is a strongly typed language. Mercury's type system is
based on many-sorted logic with parametric polymorphism, very
similar to the type systems of modern functional languages such
as ML and Haskell. Type errors are reported at compile time.
- Mercury is a strongly moded language.
- Mercury has a strong determinism system.
- Mercury has a module system.
- Mercury supports higher-order programming,
with closures, currying, and lambda expressions.
- Mercury is very efficient (in comparison with existing logic
programming languages). Strong types, modes, and determinism
provide the compiler with the information it needs to generate
very efficient code.

The current Mercury system runs on Unix machines. It is known to run on
Solaris 2.x, IRIX 5.x, Ultrix 4.3, OSF/1.1, BSDI 1.1, and Linux. It
should run without too many changes on other Unix variants as well.
You need gcc version 2.6.3 or higher and GNU make version 3.69
or higher. The Mercury distribution is available via anonymous
ftp or WWW from the following locations:

Australia: ftp://turiel.cs.mu.oz.au/pub/mercury
USA: ftp://ftp.cs.sunysb.edu/pub/XSB/mercury
Europe: ftp://ftp.csd.uu.se/pub/Mercury

The Mercury WWW page is http://www.cs.mu.oz.au/~zs/mercury.html

See also LIFE, SLG, and XSB in [2-1], BeBOP in [2-3], and Oz in [2-5].

Subject: [2-8] Commercial Logic Programming Systems

None so far. This is to be expected, as most logic programming systems
are experimental.

Subject: [2-9] Other Commercial Prolog Products

ClauseDB is a database manager for Prolog data. Advanced
knowledge-based applications often need to use a large number of
highly complex data objects. The objects are so complex that they
cannot be managed in a standard commercial RDB product, and the number
of them makes it impractical to store them in the standard Prolog
in-memory database. ClauseDB may also be useful even in Prolog
applications whose data can be handled in a RDB. The retrieval
procedure of ClauseDB is integrated in the Prolog search method. This
avoids the performance problems that arise with the standard scheme
for coupling Prolog with a RDBM (e.g., those caused by the well-known
mismatch problem between tuple- and set-based retrieval methods).
ClauseDB supports all the normal Prolog data objects (arbitrary terms
and clauses) and provides a locking mechanism that allows the sharing
of data while ensuring its integrity. ClauseDB 2.0 is available on
SUN SPARC (SunOS 4.x and 5.x) and the INTEL PC running Solaris 2.x.
For more information write to BIM sa/nv, ProLog by BIM dept.,
Kwikstraat 4, B - 3078 Everberg, Belgium, call ++32 2 759 59 25, fax
to +32 2 725 47 83 or e-mail to pro...@sunbim.be.

Subject: [2-10] Prolog extensions, meta-interpreters, and pre-processors

ProFIT (Prolog with Features Inheritance and Templates) is an extension
of Prolog with sorted feature structures (including multi-dimensional
inheritance), finite domains, feature search, cyclic terms, and
templates. ProFIT works as a pre-processor, which takes a file
containing a ProFIT program as input, and gives a file with a Prolog
program as output. Sorted feature terms and finite domains are
compiled into a Prolog term representation, and the usual Prolog term
unification is used at runtime, so that there is no slowdown through a
unification algorithm, and no meta-interpreter is needed. ProFIT uses
the same techniques for compiling sorted feature terms and finite
domains into Prolog terms as the Core Langauge Engine of SRI Cambridge
and the Advanced Linguistic Engineering Platform (ALEP 2.2) by the
European Community, BIM, and Cray Systems. ProFIT is not a grammar
formalism (although it is motivated by NLP), although it provides some
ingredients that are considered typical of grammar formalisms. The goal
of ProFIT is to provide these datatypes without enforcing any
particular theory of grammar, parsing or generation. ProFIT can be used
to extend your favourite Prolog-based grammar formalism, parser and
generator with the expressive power of sorted feature terms. Cyclic
terms can be printed out and a user-configurable pretty-printer for
feature terms is provided. ProFIT is available free of charge by
anonymous ftp from
and is implemented in Sicstus Prolog (2.1 #9). For more information,
write to Gregor Erbach, Univ. Saarlandes, Saarbruecken, Germany
<erb...@coli.uni-sb.de> <http://coli.uni-sb.de/~erbach>.

;;; *EOF*

Reply all
Reply to author
0 new messages