From news.csusb.edu!csus.edu!csulb.edu!nic-nac.CSU.net!usc!howland.reston.ans.net!europa.eng.gtefsd.com!fs7.ece.cmu.edu!honeydew.srv.cs.cmu.edu!mkant Tue Mar 29 13:11:17 1994
Newsgroups: comp.lang.prolog,comp.object.logic,news.answers,comp.answers
Path: news.csusb.edu!csus.edu!csulb.edu!nic-nac.CSU.net!usc!howland.reston.ans.net!europa.eng.gtefsd.com!fs7.ece.cmu.edu!honeydew.srv.cs.cmu.edu!mkant
From: mkant+@cs.cmu.edu (Mark Kantrowitz)
Subject: FAQ: Prolog Resource Guide 1/2 [Monthly posting]
Message-ID: <PRG_1_763545626@CS.CMU.EDU>
Followup-To: poster
Sender: news@cs.cmu.edu (Usenet News System)
Supersedes: <PRG_1_761126420@CS.CMU.EDU>
Nntp-Posting-Host: glinda.oz.cs.cmu.edu
Reply-To: mkant+prolog-guide@cs.cmu.edu
Organization: School of Computer Science, Carnegie Mellon University
Date: Sun, 13 Mar 1994 08:02:48 GMT
Approved: news-answers-request@MIT.Edu
Expires: Sun, 24 Apr 1994 08:00:26 GMT
Lines: 1120
Xref: news.csusb.edu comp.lang.prolog:118 comp.object.logic:4 news.answers:266 comp.answers:155
Status: O

Archive-name: prolog/resource-guide/part1
Last-Modified: Fri Mar 11 15:46:31 1994 by Mark Kantrowitz
Version: 1.16

;;; ****************************************************************
;;; Prolog Resource Guide ******************************************
;;; ****************************************************************
;;; prg_1.faq -- 54777 bytes

Contributions and corrections should be sent to Mark Kantrowitz
at mkant+prolog-guide@cs.cmu.edu. 

This guide lists a variety of resources for the Prolog community,
including books, magazines, ftp archives, and products. It is posted
once a month to the newsgroups comp.lang.prolog and comp.object.logic.

The original version of this guide (Version 0.6, Dec 11, 1991) was
compiled by Dag Wahlberg, Uppsala University, Sweden <dagwag@csd.uu.se>.
Other people who helped with the compilation include Chris Moss
<cdsm@doc.ic.ac.uk>, Mats Carlsson, SICS <matsc@sics.se>,
Michael A. Covington <mcovingt@ai.uga.edu>, Jocelyn Paine
<popx@vax.ox.ac.uk>, Per G. Bilse, PDC <pdev@pdc.dk>, David Cohen, BIM
Systems Inc <dc@bim.com>, Mark Korsloot <mark@logic.et.tudelft.nl>, and
David W. Talmage <talmage@luvthang.aquin.ori-cal.com>. 

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

Suggestions and comments to:    mkant+prolog-guide@cs.cmu.edu

----------------------------------------------------------------
Table of Contents (Part 1):
  [1-0]  Introduction
  [1-1]  Sources of information about Prolog
  [1-2]  FTP Archives and Other Resources
  [1-3]  Free Object-Oriented Systems for Prolog
  [1-4]  Commercial Object-Oriented Systems for Prolog
  [1-5]  The Prolog 1000 Database
  [1-6]  X-Windows Interfaces
  [1-7]  Prolog-related Mailing Lists
  [1-8]  Books and Magazine Articles
  [1-9]  Is there a straight-forward way of compiling Prolog to C?
  [1-10] WAM emulators and tracers
  [1-11] What is the Basic Andorra Model and AKL?
  [1-12] What is Constraint Logic Programming?
  [1-13] How do you write portable programs in Prolog?

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

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


Recent Changes:
;;;
;;; 1.16:
;;; 16-FEB-94 mk    Corrected directory for MSDOS SBprolog.
;;; 17-FEB-94 mk    Added entry on Yoav Shoham's book.
;;; 22-FEB-94 mk    Deleted Trilogy entry (Complete Logic Systems) from part
;;;                 2, as the company has been disbanded and Trilogy is no
;;;                 longer sold.
;;; 25-FEB-94 mk    Updated AAIS Full Control Prolog entry in part 2.
;;;  4-MAR-94 mk    New email address for Amziod, now Amzi!
;;;  4-MAR-94 mk    Added entry on Amzi! free Prolog program that solves
;;;                 Rubik's Cube.
;;; 10-MAR-94 mk    Added [1-13] on writing portable prolog programs.
;;; 11-MAR-94 mk    Updated Beta Prolog entry, with ftp location.
;;; 11-MAR-94 mk    Added information on Prowindows 3 (commercial version of
;;;                 XPCE for Quintus) to XPCE entry.

----------------------------------------------------------------
Subject: [1-0] Introduction

This guide lists Prolog resources: archives, newsgroups, books,
magazines, compilers, interpreters and anything else you can think of
which has to do with the proliferation of Prolog. Also included is a
list of suppliers of products and a list of publishers. 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 guide is posted regularly to comp.lang.prolog and comp.object.logic. 
It may also be obtained by anonymous ftp from CMU:

   To obtain the file from CMU, connect by anonymous ftp to any CMU CS
   machine (e.g., ftp.cs.cmu.edu [128.2.206.173]), using username
   "anonymous" and password "name@host". The files prg_1.faq and prg_2.faq
   are located in the directory
       /afs/cs.cmu.edu/project/ai-repository/ai/pubs/faqs/prolog/
   [Note: You must cd to this directory in one atomic operation, as
   some of the superior directories on the path are protected from
   access by anonymous ftp.] If your site runs the Andrew File System,
   you can just cp the file directly without bothering with FTP.

The FAQ postings are also archived in the periodic posting archive on
rtfm.mit.edu [18.70.0.209]. Look in the anonymous ftp directory
/pub/usenet/news.answers/ in the subdirectory 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-server@rtfm.mit.edu
with "help" and "index" in the body on separate lines for more
information.

Disclaimer:

   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 <jamie@cs.sfu.ca>. The Prolog FAQ and this
Prolog Resource Guide are intended to complement one another.

The draft ISO standard for Prolog is available by anonymous ftp from
ai.uga.edu:/ai.prolog.standard [128.192.12.9]. An unofficial summary
of the draft ISO Prolog standard is available from
ai.uga.edu:/ai.prolog.standard/ as isoprolog.tex or isoprolog.ps.Z.
Send mail to Michael Covington <mcovingt@ai.uga.edu> for more information.

----------------------------------------------------------------
Subject: [1-2] 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.


Artificial Intelligence Programs:
   ai.uga.edu [128.192.12.9]

   Contains public domain Prologs, such as Open Prolog and ESL PD Prolog,
   all programs from the book by Covington, Nute, and Vellino, (see
   the section on Books below), PrEd (a small text editor for Prolog)
   and some technical reports with accompanying code. Maintained by
   Michael Covington, the University of Georgia, mcovingt@ai.uga.edu. 

ALE:     
   ALE (Attribute Logic Engine), a public domain 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, breadth-first 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 available free for research purposes, from
   Bob Carpenter <carp@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 raina@compsci.bristol.ac.uk.

CASLOG
   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 <naiwei@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 <brian@daimi.aau.dk>.

Eden
   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, src.doc.ic.ac.uk [146.169.2.1] in the directory
   computing/programming/languages/prolog/pd-software (a shortcut is
   packages/prolog-pd-software) as the file eden.tar.Z. 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.

   The Oxford University AI Society is running an international AI
   competition for Eden bugs. Send your source code to Jocelyn Paine
   <popx@vax.oxford.ac.uk> or Edmund Chattoe <econec@vax.oxford.ac.uk> by
   May 1, 1993, if you'd like to enter.

Logic Programming Bibliographies:
   duck.dfki.uni-sb.de [134.96.188.92]

   The BiBTeX bibliographies are available in /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,
      TAPSOFT93, EAIA90, FGCS92, FAC, ILPS93
   and the following journals: JLP85-93, JAR91,92, JSC91,92, 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
      lp-proceedings.src 
   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 rscheidhauer@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, inverse 
   resolution, and Mitchell's version spaces algorithm. The programs are 
   currently available via anonymous ftp-server from the GMD:

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

   Send additional PROLOG implementations of Machine Learning
   Algorithms, complaints about them and detected bugs or problems
   to Thomas Hoppe, <hoppet@cs.tu-berlin.de>. Send suggestions and
   complaints about the ftp library to Werner Emde, Gesellschaft
   fuer Mathematik und Datenverarbeitung, Bonn, <emde@gmdzi.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
   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 <pereira@research.att.com> or Stuart Shieber
   <shieber@das.harvard.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, hostname
   ai.uga.edu:/ai.natural.language/ 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 pleuk@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.ac.uk@oxmail.ox.ac.uk (internet) or 
      popx@uk.ac.ox.vax (janet) 

   FTP access is available through the Imperial College archive at
      src.doc.ic.ac.uk  (146.169.2.1)
   in the directory
      computing/programming/languages/prolog/pd-software
   with a short-cut link of:
      packages/prolog-pd-software
   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 draxler@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:
   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, directory info-mac/app, file psi-23.hqx. It
   was also available on a recent Nautilus CD-ROM and will be on the
   first Info-Mac CD-ROM.

Rubik's Cube:
   Amzi!, 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) <amzi@world.std.com>, 40 Samuel Prescott Dr.,
   Stow, MA 01775, Tel: 508-897-7332. Fax: 508-897-2784.

SEL:
   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 <bharat@cs.buffalo.edu>.

----------------------------------------------------------------
Subject: [1-3] 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/ [13.1.64.94]. Written by Markus
P.J. Fromherz <fromherz@parc.xerox.com>. 

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

----------------------------------------------------------------
Subject: [1-4] 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!lap@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.

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

----------------------------------------------------------------
Subject: [1-5]  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 well
over 2 million lines of code. The database is available for research
use in SGML format from the Imperial College archive
   src.doc.ic.ac.uk:packages/prolog-progs-db/prolog1000.v1.gz
If you have or know about a program that might qualify for inclusion,
send an email message to Al Roth (alroth@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
(cdsm@doc.ic.ac.uk), Leon Sterling (leon@alpha.ces.cwru.edu).

----------------------------------------------------------------
Subject: [1-6] X-Windows Interfaces

PI:
   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,
   <zp@ncc.up.pt>. 

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

   XWIP is an X Windows interface for PROLOG.

XPCE:
   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/ [145.18.114.17].
   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
   xpce@swi.psy.uva.nl send mail to xpce-request@swi.psy.uva.nl. Send
   bugs to xpce-bugs@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 sheywood@aiil.co.uk.

ProTcl:
   ProTcl is a Prolog interface to Tcl/Tk. It has a very simple
   interface, which just allows one to evaluate Tcl expressions from
   Prolog. It has been tested on ECLiPSe and SICStus, on a Sparc 10.
   ProTcl is available by anonymous ftp from
      ftp.ecrc.de:/pub/eclipse/progs/protcl/
   Send comments and suggestions to Micha Meier <micha@ecrc.de>.

----------------------------------------------------------------
Subject: [1-7]  Mailing Lists

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

   All requests to be added to or deleted from this list, problems,
   questions, etc., should be sent to prolog-request@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:
   lprolog@cis.upenn.edu

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

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
   to: 
      submissions@ls5.informatik.uni-dortmund.de. 
   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
   address:
       subscriptions@ls5.informatik.uni-dortmund.de
   You will receive an acknowledgment of your subscription within a few days. 

   If there are any problems with the mail-server, send mail to
   ejflp.op@ls5.informatik.uni-dortmund.de. 

   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.
   Karlsruhe).

PDC-L:
   PDC-L@nic.surfnet.nl is a discussion list for PDC Prolog users.

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

Theorem Provers:
   theorem-provers@ai.mit.edu

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

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

Type Theory:
   types@dcs.gla.ac.uk

   Moderated mailing list about type theory. Archived on 
      theory.lcs.mit.edu:pub/meyer/

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

Logic:
   logic@cs.cornell.edu

   Moderated mailing list about logic. Archived on 
      theory.lcs.mit.edu:pub/meyer/
  
   To subscribe, send mail to logic-request@cs.cornell.edu

----------------------------------------------------------------
Subject: [1-8] Books and Magazine Articles

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

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 <vladimir@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.)

   Clocksin, W.F. and Mellish, C.S: "Programming in Prolog", 3rd Ed.
   Springer Verlag, 1987, $29. (Basic Introduction).

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

   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. 

   Sterling, Leon (ed): "The Practice of Prolog", MIT Press, 1990
   ISBN 0-262-19301-9

Advanced Prolog Programming:

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

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

   Sterling, Leon, Shapiro, Ehud: "The Art of Prolog: Advanced Programming
   Techniques", MIT Press, 1986 ISBN 0-262-19250-0

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.
   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!.)

   Dennis Merritt: "Adventure in Prolog", Springer-Verlag, 1990. 
   ISBN 0-387-97315-X, ISBN 3-540-97315-X.  $34
   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.

Logic Programming:

   Hogger, C.J.: "Introduction to Logic Programming", Academic Press 1984

   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
   constraints.]

   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, E., "Foundations of constraint satisfaction", Academic Press, 1993.
   ISBN 0-12-701610-4.

   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.
   ISBN: 0-262-51058-8 (paper), 0-262-01123-9 (cloth).

   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 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

Miscellaneous:

   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,
   1993.

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.

   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 
   ($20 regular, $10 students). For membership information, write to
   Cheryl Anderson (ALP), DoC-ICSTM, 180 Queens Gate, London SW7 2BZ,
   UK, phone +44-71-589-5111 x5011, fax +44-71-589-1552, or send email
   to alp@doc.ic.ac.uk. Contributions are welcome and should be sent
   to Andrew Davidson <ad@cs.mu.oz.au>. 

   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.

   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-9] Is there a straight-forward way of compiling Prolog to C?

Two methods of compiling Prolog to C have been reported in the
literature:
   -  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 
   csr.uvic.ca:/pub/mlevy/.)

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, <rbs@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.

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.Ridoux@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 ftp.irisa.fr in pm/*.ps.Z
and mailv06/*.ps.Z.

Michael Covington <mcovingt@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, <mlevy@csr.uvic.ca>, for writing this section.]

----------------------------------------------------------------
Subject: [1-10] 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
   ftp.csd.uu.se:/pub/WAM-tracer/luther.tar.Z
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
<bevemyr@csd.uu.se> or <bevemyr@sics.se>.

----------------------------------------------------------------
Subject: [1-11] 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 sics.se in
/pub/ccp/papers. An (as yet non-released) prototype implementation of
AKL is available for research purposes (contact sverker@sics.se).

----------------------------------------------------------------
Subject: [1-12] 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.

----------------------------------------------------------------
Subject: [1-13] 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
Prolog.

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
following, 
   % 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.) 

----------------------------------------------------------------
;;; *EOF*

From news.csusb.edu!csus.edu!csulb.edu!nic-nac.CSU.net!usc!howland.reston.ans.net!europa.eng.gtefsd.com!fs7.ece.cmu.edu!honeydew.srv.cs.cmu.edu!mkant Tue Mar 29 13:11:19 1994
Newsgroups: comp.lang.prolog,comp.object.logic,news.answers,comp.answers
Path: news.csusb.edu!csus.edu!csulb.edu!nic-nac.CSU.net!usc!howland.reston.ans.net!europa.eng.gtefsd.com!fs7.ece.cmu.edu!honeydew.srv.cs.cmu.edu!mkant
From: mkant+@cs.cmu.edu (Mark Kantrowitz)
Subject: FAQ: Prolog Implementations 2/2 [Monthly posting]
Message-ID: <PRG_2_763545626@CS.CMU.EDU>
Followup-To: poster
Sender: news@cs.cmu.edu (Usenet News System)
Supersedes: <PRG_2_761126420@CS.CMU.EDU>
Nntp-Posting-Host: glinda.oz.cs.cmu.edu
Reply-To: mkant+prolog-guide@cs.cmu.edu
Organization: School of Computer Science, Carnegie Mellon University
References: <PRG_1_763545626@CS.CMU.EDU>
Date: Sun, 13 Mar 1994 08:03:02 GMT
Approved: news-answers-request@MIT.Edu
Expires: Sun, 24 Apr 1994 08:00:26 GMT
Lines: 1189
Xref: news.csusb.edu comp.lang.prolog:119 comp.object.logic:5 news.answers:267 comp.answers:156
Status: O

Archive-name: prolog/resource-guide/part2
Last-Modified: Fri Mar 11 15:56:17 1994 by Mark Kantrowitz
Version: 1.16

;;; ****************************************************************
;;; Prolog Resource Guide ******************************************
;;; ****************************************************************
;;; prg_2.faq -- 64566 bytes

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+prolog-guide@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

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. Many of the commercial Prolog vendors offer
educational discounts to universities. Be sure to ask for current
pricing information.

The Prolog Vendors' Group may be contacted by email via the Secretary,
Al Roth, at <alroth@cix.compulink.co.uk>.

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:
   prep.ai.mit.edu:pub/gnu/{gzip-1.0.7.shar,gzip-1.0.7.tar}

----------------------------------------------------------------
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).


A.D.A. Public Domain Prolog:
   aisun1.ai.uga.edu:ai.prolog/adapdpro.zip

   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 
        penalty.

   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 listserv@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 aquarius@acal-server.usc.edu.

Beta-Prolog (version 1.1):

   Beta-Prolog is an experimental Prolog system that provides many
   facilities for specifying and solving combinatorial problems. It
   supports the definition and manipulation of Boolean tables which can
   be used to represent graphs, simple and hierarchical domains, and
   situations in various combinatorial problems. Beta-Prolog also
   provides several primitives for describing constraint satisfaction 
   problems declaratively.

   The Beta-Prolog system consists of an emulator of the TOAM (matching
   Tree Oriented Abstract Machine) written in C and a compiler of
   Beta-Prolog written in Beta-Prolog itself. It differs from
   WAM-based systems mainly in the following two aspects: (1) It
   translates predicates into trees and generates multi-level hashing
   code for predicates; (2) It passes arguments directly in stack frames
   like most compilers of procedural languages.  

   Beta-Prolog is currently one of the fastest emulator-based Prolog
   systems. It will be of interest to Prolog users, programmers
   investigating search algorithms for combinatorial problems, and
   researchers who want to develop high-performance Prolog systems and/or
   evaluate compilation techniques for Prolog.

   Copies of the system are available by anonymous ftp from
      ftp.cs.cmu.edu:user/ai/lang/prolog/impl/prolog/beta_pl/
   or by sending an email message to betaprolog@cad.mse.kyutech.ac.jp.
   Beta-Prolog was developed by Neng-Fa Zhou, <zhou@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.


BinProlog:
   clement.info.umoncton.ca:BinProlog/BinProlog.2.20.tar.gz [139.103.16.2]
   The file papers.tar.gz contains papers related to the implementation.

   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), and
   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@info.umoncton.ca>.

   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. 

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-hata@air.co.jp or matsuura@air.co.jp.

cu-Prolog: See [2-5].

ECLiPSe:

   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_request@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
      ecrc.de:/pub/eclipse
   To subscribe to the eclipse_users@ecrc.de mailing list, send mail to  
   eclipse_request@ecrc.de.

eLP:
   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 elp@cs.cmu.edu mailing list, send
   mail to elp-request@cs.cmu.edu. Bugs should be sent to
   elp-bugs@cs.cmu.edu.

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

   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).]

   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:
   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. The release includes the Goedel system, a
   draft book on the language, a user manual, and 50 example programs.
   Goedel must be compiled in SICStus Prolog; a sparc executable is
   included in the distribution. Goedel is available by anonymous ftp
   from ftp.cs.kuleuven.ac.be:/pub/logic-prgm/goedel [134.58.41.2] and
   ftp.cs.bris.ac.uk:/goedel [137.222.102.102]. For more information,
   write to goedel@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-users@compsci.bristol.ac.uk mailing list, send mail to 
     goedel-users-request@compsci.bristol.ac.uk
   indicating that you wish to join the Goedel discussion group.

IC-Prolog II:
   src.doc.ic.ac.uk:/computing/programming/languages/prolog/icprolog/.
   The emulator is available at present only in Sun-4 binary form.
   Source code may be released later in the year when project
   finishes. 

   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
   'papers'.

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

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

JB-Prolog:
   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 
      ftp.cs.cmu.edu:user/ai/lang/prolog/impl/prolog/jbprolog/JBprolog2.1.2.sit.hqx
   For more information contact Jan Burse, jburse@clients.switch.ch,
   XLOG, Scheuchzerstr. 67, 8006 Zrich, Switzerland.

Prolog/Mali (Lambda-Prolog):
   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:pm/.
   Written by Pascal Brisset <brisset@irisa.fr> (or <brisset@ecrc.de>)
   and Olivier Ridoux (ridoux@irisa.fr). To be added to the mailing list,
   send mail to prolog-mali-request@irisa.fr. For more information, send
   mail to pm@irisa.fr.

LIFE:
   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 the Paradise project at Digital Equipment
   Corporation's Paris Research Laboratory (DEC PRL). Wild_LIFE runs on
   DECstations (Ultrix), SparcStations and RS/6000 systems 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
   Life.tar.Z. To be added to the mailing list (life-users@prl.dec.com),
   send mail to life-request@prl.dec.com. Send bug reports to
   life-bugs@prl.dec.com. 

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 Plus upwards, and is now 
   32-bit clean.

   OP's home site is grattan.cs.tcd.ie [134.226.32.15] in 
    languages/open-prolog
   It is also available from other sites, such as:
   sumex-aim.stanford.edu (info-mac)
          mac.archive.umich.edu [141.211.165.41]
          nexus.yorku.ca:/pub/prolog/  [130.63.9.1] 
          aisun1.ai.uga.edu [128.192.12.9]
          /afs/umich.edu/group/itd/archive/mac/development/languages 

   For more information, write to Michael Brady, Computer Science
   Department, Trinity College, Dublin 2, IRELAND, send email to
   brady@cs.tcd.ie, call +353 1 7021786, or fax +353 1 6772204 (5 hours
   ahead of East Coast US time).

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

Portable Prolog System:
   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 
      ftp.cs.uq.oz.au:pub/SVRC/
   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 <pjr@cs.uq.oz.au>.

SB-Prolog:
   cs.arizona.edu:/sbprolog
   sbcs.sunysb.edu:/pub/sbprolog

   Stony Brook Prolog runs on Sun4, Pyramid-98x, DEC3100, SGI Iris,
   Amiga, and MS-DOS machines. Contact warren@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
      sbcs.sunysb.edu:/pub/hilog/

   src.doc.ic.ac.uk [146.169.3.7] 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
   /pub/amiga/fish/disks100-199/ff140. 

   Modular SB-Prolog (= SB-Prolog version 3.1 plus modules) is available
   by anonymous FTP from ftp.dcs.ed.ac.uk (129.215.160.5), as the file
   pub/dts/mod-prolog.tar.Z. Includes interpreter for SPARC. For more
   information, write to Brian Paxton <mprolog@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.]

SLG:
   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/                 [129.119.3.2]
      sbcs.sunysb.edu:pub/XSB/          [130.245.1.15]
   as the file slg.tar.gz. Comments, requests, and bug reports should 
   be sent to Weidong Chen, <wchen@seas.smu.edu>, Computer Science and 
   Engineering, Southern Methodist University, Dallas, Texas 75275-0122, 
   phone 214-768-3097, or David Scott Warren, <warren@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/pl-1.6.12.tar.Z [192.42.96.1] (Main source)
   [The patch level (last digit) is regularly updated and diffs between
   patch levels are located in the same directory.]
   mpii02999.ag2.mpi-sb.mpg.de:pub/tools/SWI/ [139.19.20.250] (OS/2)

   rs3.hrz.th-darmstadt.de  [130.83.55.75]
   ftp.th-darmstadt.de:pub/programming/languages/prolog [130.83.22.253]

   SWI-Prolog includes a fast compiler, a profiler, C interface, a
   module system, libraries, and dynamic loading. 
   Runs on Atari ST, Gould PN, NeXT, HP, IBM Linux, DEC MIPS, IBM
   PS/2 AIX, OS/2, IBM RS/6000, Sun3, Sun4, Sparc, and Vax.
   Written by Jan Wielemaker, SWI, University of Amsterdam,
   Roetersstraat 15, 1018 WB     Amsterdam, The Netherlands,
   <jan@swi.psy.uva.nl>. Ported to OS/2 by Andreas Toenne, 
   <atoenne@mpi-sb.mpg.de>. The mailing list is prolog@swi.psy.uva.nl.
   To be added to the list, send mail to prolog-request@swi.psy.uva.nl.

Toy Prolog:
   An interpreter written in Pascal. About 3500 lines of source. Free with
   "Prolog for Programmers" by Kluzniak and Szpakowicz (Academic Press
   1985). Toy Prolog has been ported to the Atari ST by Jens
   Kilian <jensk@hpbeo82.bbn.hp.com>.

Tricia:
   Tricia is a free Prolog high-level emulator with interpreter available 
   by email from Uppsala University. Runs on Macintosh, Sun3, Sun4, Apollo
   DN-3500/4500/5500 (OS version 10.*) and HP-730's. For more information,
   write to Uppsala University, Tricia project, Computing Science
   Department, Box 520, S-751 20 UPPSALA, Sweden, fax +46 18 521270, or
   email to tricia-request@csd.uu.se or jonas@csd.uu.se. It is
   available by anonymous ftp from
      ftp.csd.uu.se:pub/Tricia/
   A copy is also available in the directory
      /afs/umich.edu/group/itd/archive/mac/development/languages
   if your site runs the Andrew File System, or by anonymous ftp from
   mac.archive.umich.edu.

XSB:
   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 [130.245.1.15]. For further
   information, write to XSB Research Group, Computer Science Department,
   SUNY at Stony Brook, Stony Brook, NY 11794, or send email to
   xsb-contact@cs.sunysb.edu.

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. (Until June 30, 1994, it is on sale for $299 a copy; directly 
from AAIS only; with an educational price of $199 a copy, also direct only).
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 AAISProlog@aol.com. Earlier version (2.0) 
reviewed in AI Expert, Feburary 1991.

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 AIAI@ed.ac.uk.

ALS Prolog runs on 80386 machines, including DOS ($799), Sun 386i, Xenix,
Apple Macintosh ($499), System V Unix (Microport), Sun3, Sun4, Sparc,
Aviion, NeXT, VAX and Delta88. It is available from Applied Logic
Systems, Inc., PO Box 90, University Station, Syracuse, NY 13210-0090,
phone 315-471-3900, fax 315-471-2606, or email info@als.com or
support@als.com. Send a message to info@als.com with subject line "HELP"
to get a general information file in reply.

Arity Prolog is an emulator with interpreter 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.2614@compuserve.com or Paul G. Weiss <weiss@lcs.mit.edu>.

Prolog by BIM is a prolog compiler for Unix that runs on Sun4, Sparcs 
and RS/6000. It includes Carmen, a user-interface generator for XView
and SunView and interfaces to various databases and windowing
packages. For more information, contact BIM Systems, Inc., 11111
Santa Monica Boulevard, Suite 650, Los Angeles, CA 90025, call
310-445-1500, fax to 310-445-1515, or email to prolog@bim.com.
Outside North-America write to BIM s.a./n.v., Kwikstraat 4, B-3078
Everberg, Belgium, call +32 2 759 59 25, fax to +32 2 759 92 09 or
email to prolog@sunbim.be (Kathleen Pierco). Earlier version reviewed
in AI Expert, January 1991.

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 info@acw.com. 

Cogent Prolog is an Edinburgh-standard compiler and interpreter.
Compiled and interpreted code may be intermixed in the same program
(for ease of debugging). The full system includes a debugger, definite
clause grammar support, full-screen shell, standard listener, support
for 16-bit and 32-bit protected mode, linker, .exe generator and
royalty-free distributable runtime ($248). Compiler & interpreter
without linker and distributable runtime ($149).  Interpreter alone
($49).  Also available is an interactive tutorial, the Active Prolog
Tutor ($75) and full source code for expert system shell prototypes
for forward/backward chaining, frames, Rete-network and more ($82).
All are IBM-PC (DOS) based. For more info or tech support, email
amzi@world.std.com, or contact Amzi! Inc., 40 Samuel Prescott Dr., Stow,
MA 01775. Tel: 508-897-7332. Fax: 508-897-2784.

Delphia Prolog 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). 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 chris@caad.ed.ac.uk.

ESL Prolog-2 (Commercial Version), is a high-level emulator with
interpreter and compiler for Sun3, Sun4, HP9000 (Unix), RS/6000
(Unix), VAX (VMS), IBM PC (MS-DOS, Windows 3.0/3.1), and 386. 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 Limited (ESL), Attn:
Nick Henfrey, The Magdalen Centre, Oxford Science Park, Oxford, OX4
4GA, England, call +44-865-784474, fax +44-856-784475, or email
<sales@expert.demon.co.uk>. 

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 (Program
Number 5776-FAH). For more information: In North-America contact BIM
systems, 11111 Santa Monica Bld, call 310-445-1500, fax to
+310-445-1515; in Europe contact your local IBM representative.
Elsewhere contact BIM, Kwikstraat 4, B-3078 Everberg, Belgium, call
+32 2 759 59 25, or fax +32 2 759 92 09, or email prolog@sunbim.be.

IF/Prolog is a Prolog interpreter and compiler with X-window and
OSF/Motif development environment, bidirectional C interface, on-line
hypertext manual, and X-window, OSF/Motif interfaces and various SQL
interfaces (e.g., Ingres, Oracle, and Informix). It includes a
window-based debugger. It runs on 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. For more information,
write to American InterFace Computer, Inc., One Westlake Plaza, 1705
Capital of Texas Highway South, Suite 200, Austin, TX 78746, call
512-327-5344, or fax 512-327-5176, or e-mail ifc@cactus.org. European
Customers may write to InterFace Computer GmbH, Garmischer Strasse 4,
D-8000 Muenchen 2, Germany, call +49 89 5108655, fax +49 89 5108628,
or email vp@IFComputer.de. Reviewed in AI Expert January 1991.
|
[According to a December 7, 1993, announcement by Peter Richter,
IF/Prolog has been purchased by Siemens Nixdorf Informationssysteme AG
(SNI) of Munich, Germany.  SNI will continue to support IF/Prolog
across ALL modern UNIX, VMS and DOS platforms together with its own
SNI Prolog system (see below) and offer services for both systems.
Direct questions to Annette Kolb, phone 49-89-636-46089, fax
49-89-636-40140, e-mail prolog@mch.sni.de.]

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 szeredi@iqsoft.hu.

LPA Prolog is a prolog compiler for IBM PCs (DOS, Windows, 386) and Apple
Macintosh. LPA Prolog ++ is an object-oriented programming system
based on Prolog. Write to Logic Programming Associates, Ltd., Studio
4 Royal Victoria Patriotic Building, Trinity Road, London SW18 3SX,
England, call +44 081-871-2016, fax +44 081-874-0449, or email
lpa@cix.compulink.co.uk, UK0049@applelink.apple.com (Clive Spenser), 
or 100135.134@compuserve.com. In the US call 800-949-7567.
LPA products are distributed in North America by Quintus under the
Quintus name.

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
lee@cs.mu.oz.au or jws@cs.mu.oz.au.

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-request@pdc.dk (general information), sales@pdc.dk (sales),
support@pdc.dk (tech support). A BBS is run at 404-872-5358. 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 753CD.165@compuserve.com. To subscribe to the
PDC-L@nic.surfnet.nl mailing list, a discussion list for PDC Prolog
users, send mail to LISTSERV@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 popsales@cogs.sussex.ac.uk
or popmanager@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 isl@integ.uucp or
isl@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-545-3140, or fax
413-545-3140. Contact Robin Popplestone, pop@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 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
prolia@dcftlx.das.net or prolia@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
plogic@lehi3b15.csee.Lehigh.edu.

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 low level emulator that runs on Unix (Sparc, sun2,
sun3, sun4, 386i, VAX (Ultrix, VMS), uVAX (Ultrix), HP9000, Apollo,
DecStation, IBM RT, Sequent S/27, S/81, IBM PS/2 (AIX), Intel 80386
(Unix V.3), Intergraph, Solbourne, RS/6000, and MIPS), IBM PC (DOS,
Windows), and Macintosh. Includes a cross-referencing facility. For
more information, contact Quintus Corporation, 2100 Geng Road, Palo
Alto, CA 94303, call 1-800-542-1283 (415-813-3800), fax 415-494-7608,
or email sales@quintus.com (sales), teksup@quintus.com (tech support).
To be added to the users group mailing list, send mail to
quintus-users-request@quintus.com. Version 3.0 reviewed in AI Expert
January 1991 and February 1991 and IEEE Expert April 1991. LPA
products are distributed in North America by Quintus under the Quintus name.

SICStus Prolog is a Unix prolog by SICS. It is portable to most UNIX
machines (Berkeley UNIX is preferred over System V). SICS Aurora and
Echo is a parallel emulator for Sequent Balance, Sequent Symmetry,
Encore Multimax, and BBN Butterfly (Unix). For more information, write
to SICS, Swedish Institute of Computer Science, P.O. Box 1263, S-164
28 KISTA, Sweden, call +46 8 752 15 02, fax +46 8 751 72 30, or send
email to sicstus-request@sics.se or sicstus@sics.se. Bug reports
and tech support questions should be sent to sicstus-bug@sics.se.
To subscribe to the users group and implementors mailing list, send
email to sicstus-users-request@sics.se.  

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 stenger@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.

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
implementations. 

BeBOP:
   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 [128.250.1.21].  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,
   <ad@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.

Multi-BinProlog:
   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:
   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:ai.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,
   <markov@iinf.bg>.

PCN:
   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
      info.mcs.anl.gov:/pub/pcn/pcn_v2.0.tar.Z 
   The distribution includes a user's guide containing a tutorial and
   reference material. For further information on PCN, please send email to
   <pcn@mcs.anl.gov> or contact Ian Foster <foster@mcs.anl.gov>
   708-252-4619 or Steve Tuecke <tuecke@mcs.anl.gov> 708-252-8711.

PDSS KL1:
   PDSS KL1 is an implementation of FGHC, a concurrent logic programming
   language developed at ICOT in Japan. Runs on Suns, HPs, DECs, and the
   Sequent Symmetry. Available free by anonymous ftp from ftp.icot.or.jp.
   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. For more information,
   send email to ifs@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.

ROLOG: 
   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
implementations. 

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 plogic@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 parlog@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
strand88@sstl.uucp.

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.

cu-Prolog:
   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 ifs@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(R):
   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
   joxan@watson.ibm.com or joxan@yktvmh.bitnet. Current version 1.2.
   For more information, write to Joxan or Roland Yap
   <roland@bruce.cs.monash.edu.au>.

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

----------------------------------------------------------------
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 <cosytec@cosytec.fr>.  COSYTEC is a founder
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@moncsbruce.oz.au.

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
info@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 info@ilog.fr.

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
604-688-8479.

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

----------------------------------------------------------------
Subject: [2-7] Free Logic Programming Systems

ALF:
   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
   ftp.germany.eu.net (aka simpson.germany.eu.net) in the directory
   /pub/programming/languages/LogicFunctional as the files alf_*.zoo
   (Documentation, C sources for the emulator, the preprocessor and the
   compiler). For further information, contact Rudolf Opalla
   <opalla@julien.informatik.uni-dortmund.de>.

CORAL:
   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, <raghu@ricotta.cs.wisc.edu>.

Lolli:
   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. To
   retrieve a copy of the Lolli system, ftp (anonymously) to
   ftp.cis.upenn.edu and retrieve the file pub/Lolli/Lolli-07.tar.Z. 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 ftp.cis.upenn.edu in the directory
   pub/Lolli/binaries. At present Sparc and NeXT binaries are available.
   If you compile lolli on a new architecture, please contact Josh Hodas
   at <hodas@saul.cis.upenn.edu> so that he can make your binary
   available.

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

----------------------------------------------------------------
Subject: [2-8] Commercial Logic Programming Systems

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

----------------------------------------------------------------
;;; *EOF*

From news.csusb.edu!csus.edu!csulb.edu!nic-nac.CSU.net!usc!sol.ctr.columbia.edu!newsxfer.itd.umich.edu!nntp.cs.ubc.ca!fornax!jamie Fri Apr  1 12:45:29 1994
Newsgroups: comp.lang.prolog,news.answers,comp.answers
Path: news.csusb.edu!csus.edu!csulb.edu!nic-nac.CSU.net!usc!sol.ctr.columbia.edu!newsxfer.itd.umich.edu!nntp.cs.ubc.ca!fornax!jamie
From: jamie@cs.sfu.ca (Jamie Andrews)
Subject: comp.lang.prolog Frequently Asked Questions
Message-ID: <prolog/faq-1-765194402@cs.sfu.ca>
Followup-To: comp.lang.prolog
Summary: Information about free Prolog implementations; contact names for commercial systems; controversial topics.
Supersedes: <prolog/faq-1-763812002@cs.sfu.ca>
Reply-To: jamie@cs.sfu.ca (Jamie Andrews)
Organization: Logic Programming Lab, Computer Science, Simon Fraser University
Date: Fri, 1 Apr 1994 10:00:12 GMT
Approved: news-answers-request@MIT.Edu
Expires: 04/19/94
Lines: 385
Xref: news.csusb.edu comp.lang.prolog:293 news.answers:1099 comp.answers:383
Status: O

Posted-By: auto-faq script
Archive-name: prolog/faq

Original-by: jamie@cs.sfu.ca (Jamie Andrews)
Version: 1.14
Last-modified: 3/31/94 by jamie@cs.sfu.ca (Jamie Andrews)

     This article contains the answers to some Frequently Asked
Questions (FAQ) often seen in comp.lang.prolog.  It is posted
(twice a month, currently on the 1st and 16th) to help reduce
volume in this newsgroup and to provide hard-to-find information
of general interest.

     This article includes answers to the following questions.

0. General information
1. What is the Association for Logic Programming?
2. Where can I get a public-domain, free Prolog for (the IBM PC,
   the Mac, Unix)?
3. What commercial systems are available?  What about systems
   available for a price from research institutions?
4. How do I get in touch with my Prolog's users' group,
   sales representative, or technical support line?
5. I think language X is better than Prolog.  What do you think?
6. My Prolog prof assigned me this problem.  Can you help
   me with it?
7. Can you suggest some books on Prolog?
8. Are there any FTP archive sites for comp.lang.prolog?
9. How can I get a copy of the draft ISO Prolog standard?
   Where can I go for more information about it?
10. How does the WAM (Warren Abstract Machine) work?  How do I
   write a WAM-based compiler or a WAM emulator?

     Please forward suggestions for further questions and
answers to the current FAQ maintainer, jamie@cs.sfu.ca (Jamie
Andrews).

Changes in this version:
* Updated information for ECLiPSe/Sepia.
* Updated FTP address for SWI-Prolog.
* Updated information for Amzi! inc.



* Deleted references to basic SB-Prolog (superseded by XSB).
* Updated information for Open Prolog.
* Updated information for BinProlog.
* Added information for CHIP V4 (COSYTEC).

			*	*	*

0. General information

     The newsgroup "comp.lang.prolog" discusses the language
Prolog and other "logic programming" languages.  Logic
programming languages, in general, are programming languages
which incorporate some of the language of mathematical logic;
unification and backtracking search are common operational
features.  For more background information about Prolog, see the
list of books in Question 7 of this list.

			*	*	*

1. What is the Association for Logic Programming?

     To keep up with the current state of logic programming
technology, readers can join the Association for Logic
Programming (ALP) and receive their Newsletter.  For details on
how to join, contact:

        Cheryl Anderson,
        ALP Administrative Secretary,
        Dept. of Computing,
        Imperial College,
        180 Queen's Gate,
        London, SW7 2BZ, UK

Email:   csa@doc.ic.ac.uk
Fax:    +44 71 589 1552
Phone:  +44 71 589 5111 x5011

     The Prolog Resource Guide (v0.6) was printed in issue 5/1
of the Newsletter (Feb. 1992). This lists information concerning
Prolog Archives, Books, Suppliers, etc.  It is now maintained by
Mark Kantrowitz (Mark.Kantrowitz@GLINDA.OZ.CS.CMU.EDU), and
posted periodically to comp.lang.prolog (see question 3).

     To send in Newsletter contributions, write to:

        Andrew Davison,
        Dept. of Computer Science,
        University of Melbourne,
        Parkville,
        Melbourne, Victoria 3052,
        AUSTRALIA

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

			*	*	*

2. Where can I get a public-domain, free Prolog for (the IBM PC,
   the Mac, Unix)?

     The following are anonymous-FTP sites for free Prologs
which are either in the public domain or are "copy-lefted"
(permitted to be copied with some restrictions on commercial use).

     [Please see Mark Kantrowitz's monthly "Prolog Resource
Guide" posting (see question 3) for information about non-free
implementations.]

     (Please note that for extensive development work, users
will probably want a robust interpreter or compiler with good
debugging facilities and a standard syntax, among other things.
While public-domain systems are a valuable service to the
community, they do not necessarily have all these things, and
users should weigh carefully what they want to do against the
capabilities and costs of the available systems.)

For the IBM PC:
- BinProlog 2.10, anonymous FTP from clement.info.umoncton.ca
  (139.103.16.2), directory BinProlog.  Compiler for 386/486
  machines (DOS + WIndows 3.1), R6000.
  E-mail: tarau@info.umoncton.ca (Paul Tarau).
- Anonymous FTP from aisun1.ai.uga.edu, directory ai.prolog;
  download "Contents" first.  ADA Prolog and ESL Prolog.
  E-mail: mcovingt@uga.cc.uga.edu (Michael Covington).
- SWI Prolog, anonymous FTP from swi.psy.uva.nl (145.18.114.17),
  directory pub/SWI-Prolog; or from ftp.th-darmstadt.de
  (130.83.55.75), directory pub/programming/languages/prolog.
  Portable, copy-lefted.

For the Apple Macintosh:
- Anonymous FTP from aisun1.ai.uga.edu, directory ai.prolog;
  download "Contents" first.  Demo version of LPA MacProlog.
  E-mail: mcovingt@uga.cc.uga.edu (Michael Covington).
- Open Prolog, anonymous FTP from its home site: grattan.cs.tcd.ie
  (134.226.32.15), directory pub/languages/open-prolog.
  Also available from sumex-aim.stanford.edu, directory
  info-mac/Development.  E-mail: brady@cs.tcd.ie (Michael Brady).
- UPMAIL Tricia Prolog, anonymous FTP from ftp.csd.uu.se
  (130.238.12.1), directory pub/Tricia; get README first.
  Email: tricia-request@csd.uu.se.
- TPM (the Transparent Prolog Machine), anonymous FTP from
  hcrl.open.ac.uk, directory /pub/software.  Demo LPA
  MacProlog with the TPM debugger built on top.

For Unix systems:
- BinProlog 2.10, anonymous FTP from clement.info.umoncton.ca
  (139.103.16.2), directory BinProlog.  Compiler for SPARC
  (SunOS 4.x + Solaris), DEC Alpha, MIPS, NeXT, Sun3.
  E-mail: tarau@info.umoncton.ca (Paul Tarau).
- SWI Prolog, anonymous FTP from swi.psy.uva.nl (145.18.114.17),
  directory pub/SWI-Prolog; or from ftp.th-darmstadt.de
  (130.83.55.75), directory pub/programming/languages/prolog.
  Portable, copy-lefted.
- Modular SB-Prolog (= SB-Prolog version 3.1 plus modules),
  anonymous FTP from ftp.dcs.ed.ac.uk (129.215.160.5), file
  pub/dts/mod-prolog.tar.Z .  Interpreter for SPARC.
  E-mail: mprolog@dcs.ed.ac.uk (Brian Paxton).
- ALF (Algebraic Logic Functional language), WAM-based language
  with narrowing/rewriting, anonymous FTP from ftp.germany.eu.net,
  directory "pub/programming/languages/LogicFunctional".
  E-mail: opalla@julien.informatik.uni-dortmund.de (Rudolf Opalla).
- CLP(R), available by e-mail request from Joxan Jaffar,
  "joxan@watson.ibm.com".  Constraint logic programming language,
  for academic and research purposes only.
- Aquarius Prolog 1.0, send message with body "get aquarius-info
  license" to listserv@acal-server.usc.edu.  High performance,
  commercial functionality except debugging and modules.  For
  SPARC, DECstation, MIPS, HP 9000 series, Sun 3.  Copy-lefted.
- XSB, system with OLDT-resolution and HiLog capability.  Compiler
  for Linux, Sun, Sparc, and NeXT.  Anonymous FTP from
  cs.sunysb.edu (130.245.1.15), directory pub/XSB.
  E-mail: xsb-contact@cs.sunysb.edu

			*	*	*

3. What commercial systems are available?  What about systems
   available for a price from research institutions?

     Many commercial systems are listed in the periodically
posted Prolog Resource Guide.  The Resource Guide also lists
many systems which are not exactly "commercial", but available
for a price from research instutitions.  The list of such
systems was originally compiled by Chris Moss, of Imperial
College.  The rest of the Resource Guide was originally compiled
by Dag Wahlberg, of Uppsala University.

     The Resource Guide is now maintained by the kind efforts
of Mark Kantrowitz, "Mark.Kantrowitz@GLINDA.OZ.CS.CMU.EDU", who
posts it ON THE 14TH OF EVERY MONTH on comp.lang.prolog.  It is
also available by anonymous FTP from "ftp.cs.cmu.edu" [128.2.206.173]
in the directory "/afs/cs.cmu.edu/user/mkant/Public/AI/", as the
file "prolog-resource-guide.text".

     Readers should also note that the newly formed Prolog
Vendors' Group is contactable electronically via the Secretary,
Al Roth.  His email is "alroth@cix.compulink.co.uk".

			*	*	*

4. How do I get in touch with my Prolog's users' group,
   sales representative, or technical support line?

     Here are some e-mail addresses of these contacts, listed
alphabetically by company or major product name.  Please note
that sometimes phoning or writing to the company will get better
response than e-mail.

ALS (Applied Logic Systems): 
  Information:	info@als.com
  Sales:	sales@als.com
  Tech support:	support@als.com

Amzi! inc. (Cogent Prolog):
  All:		amzi@world.std.com

COSYTEC (CHIP V4):
  Information:	cosytec@cosytec.fr
  Support:	help@cosytec.fr

ECLiPSe and Sepia:
  User's group:	eclipse_users@ecrc.de
  Information:	eclipse_request@ecrc.de
  Tech support:	eclipse_bugs@ecrc.de

Expert Systems Ltd. (Prolog-2):
  Sales:	sales@expert.demon.co.uk
  Support:	supp