Archive-name: prolog/resource-guide/part1 Last-Modified: Wed Jan 12 22:32:52 1994 by Mark Kantrowitz Version: 1.14 ;;; **************************************************************** ;;; Prolog Resource Guide ****************************************** ;;; **************************************************************** ;;; prg_1.faq -- 45556 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 . Other people who helped with the compilation include Chris Moss , Mats Carlsson, SICS , Michael A. Covington , Jocelyn Paine , Per G. Bilse, PDC , David Cohen, BIM Systems Inc , Mark Korsloot , and David W. Talmage . Thanks also to Jamie Andrews . 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] Prolog-related Mailing Lists [1-4] Books and Magazine Articles [1-5] The Prolog 1000 Database [1-6] X-Windows Interfaces [1-7] Is there a straight-forward way of compiling Prolog to C? [1-8] WAM emulators and tracers [1-9] What is the Basic Andorra Model and AKL? Prolog Implementations (Part 2): [2-1] Public Domain or Free Prolog Implementations [2-2] Commercial Prolog Implementations 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.9: ;;; 20-JUL-93 mk Updated IC-Prolog II entry and the PARLOG entry. ;;; 10-AUG-93 mk Inserted [1-7] about compiling Prolog to C. ;;; ;;; 1.10: ;;; 24-AUG-93 mk Corrected subscription info to EJFLP. ;;; 25-AUG-93 mk Added entry on theorem-provers mailing list to [1-3]. ;;; ;;; 1.11: ;;; 13-SEP-93 mk Added entry on SLG to part 2. ;;; ;;; 1.12: ;;; 6-OCT-93 mk Added entry on JB Prolog 2.1 ;;; 12-OCT-93 mk Added mention of Goedel mailing list to Goedel entry. ;;; 28-OCT-93 mk Added entry on CHIP V4 to [2-2] Constraint Systems. ;;; ;;; 1.13: ;;; 15-NOV-93 mk Updated ILOG Solver entry in part 2. ;;; 15-NOV-93 mk Updated LP Bibs entry. ;;; 15-NOV-93 mk Corrected email in SQL compiler entry. ;;; ;;; 1.14: ;;; 14-DEC-93 mk Added Kogge book to 1-4. ;;; 16-DEC-93 mk Changed export.lcs.mit.edu to ftp.x.org. ;;; 22-DEC-93 mk Updated BinProlog entry. ;;; 27-DEC-93 mk Siemens just bought IF/Prolog. ;;; 27-DEC-93 mk Reorganized the references in [1-4]. ;;; 27-DEC-93 mk Added entry on ProTcl to [1-6]. ;;; 27-DEC-93 mk Added entry on Qu-Prolog 3.2 and Ergo 4.0 to part 2. ;;; 28-DEC-93 mk Updated SLG entry. ;;; 29-DEC-93 mk Added entry on WAM emulators and tracers. ;;; 12-JAN-94 mk Added entry on Beta Prolog ---------------------------------------------------------------- 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. A "Frequently Asked Questions" posting is posted to comp.lang.prolog twice a month by Jamie Andrews . 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 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 (or IP address) login: "anonymous", password: your own return email address, cd , ls to see files, set binary, get 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 . 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 . 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 . 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 or Edmund Chattoe 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 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, . Send suggestions and complaints about the ftp library to Werner Emde, Gesellschaft fuer Mathematik und Datenverarbeitung, Bonn, . 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 or Stuart Shieber . Object-Oriented Program in 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 . 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. 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 . ---------------------------------------------------------------- Subject: [1-3] 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@hearn.bitnet is a discussion list for PDC Prolog users. 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. To subscribe, send mail to types-request@dcs.gla.ac.uk. ---------------------------------------------------------------- Subject: [1-4] 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 . 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 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. 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: Bratko, Ivan, "Programming in Prolog for Artificial Intelligence", 2nd Edition, Addison-Wesley, 1990 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 and more. Includes complete source code listings. (Source code from the book is also sold on disk by Amziod.) Dennis Merritt: "Adventure in Prolog", Springer-Verlag, 1990. 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. 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 Satisfaction: Pascal Van Hentenryck, "Constraint Satisfaction in Logic Programming", MIT Press, Cambridge, MA, 1989, ISBN 0-262-08181-4. 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), 1980. 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: BYTE Magazine, August 1987. 5 introductory articles on Prolog. 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 . 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-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, . 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.psu.uva.nl. Send bugs to xpce-bugs@swi.psy.uva.nl. [Mail to xpce-request bounced, 7/8/93.] 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 ecrc.de:/pub/eclipse/progs/protcl/ Send comments and suggestions to Micha Meier . ---------------------------------------------------------------- Subject: [1-7] 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, , 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 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 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, , for writing this section.] ---------------------------------------------------------------- Subject: [1-8] 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 or . ---------------------------------------------------------------- Subject: [1-9] 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). ---------------------------------------------------------------- ;;; *EOF* Archive-name: prolog/resource-guide/part2 Last-Modified: Wed Jan 12 22:32:29 1994 by Mark Kantrowitz Version: 1.14 ;;; **************************************************************** ;;; Prolog Resource Guide ****************************************** ;;; **************************************************************** ;;; prg_2.faq -- 63499 bytes This is part two of the Prolog Resource Guide. This part lists available Prolog implementations, both free and commercial. Send suggestions and comments to: mkant+prolog-guide@cs.cmu.edu Prolog Implementations (Part 2): [2-1] Public Domain or Free Prolog Implementations [2-2] Commercial Prolog Implementations 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-1] Public Domain or Free Prolog Implementations The following list of free Prolog and logic programming implementations excludes those listed in the comp.lang.lisp FAQ (i.e., Prolog interpreters written in Lisp). Note that commercial prolog implementations are often more robust and better supported than public domain and free prolog implementations. 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. 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 . 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 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. 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, , Dept. of Computer Science, University of Melbourne, Parkville, Victoria 3052, Australia, call +61 3-287-9172/9101, or fax +61 3-348-1184. Beta-Prolog (version 1.0): 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 sending an email message to betaprolog@cad.mse.kyutech.ac.jp. Beta-Prolog was developed by Neng-Fa Zhou, , 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.10.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. BinProlog is free for research and other non-profit purposes. Version 2.10 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 . 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/ 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. 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. For more information, 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. 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. 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. 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, . 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. ECLiPSe: ECLiPSe (ECRC Logic Programming System) combines the functionalities of several ECRC systems, including Sepia, MegaLog and CHIP. 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 containing several libraries with various types of constraint handling schemes, and an X11-based graphic system (KEGI). The BANG database can store not only relations, but also any Prolog structures and programs. ECLiPSe also includes a profiler, user-definable syntax, metaterms as first-class citizens, coroutining, unlimited precision integer and rational numbers, and a library for generalized propagation Propia. 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, D-81925 Munich 81, 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 for questions about IC Prolog II, and contact Zacharias Bobolakis for information about L&O. JB-Prolog: JB-Prolog 2.1 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/JBprologJBprolog2.1.sit.hqx For more information contact Jan Burse, jburse@clients.switch.ch, XLOG, Postbox 423, 8042 Zuerich, 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 (or ) 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. 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 so that he can make your binary available. 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, . 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). 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 or contact Ian Foster 708-252-4619 or Steve Tuecke 708-252-8711. PD Prolog 19: wuarchive.wustl.edu:/mirrors/msdos/prolog/prolog19.arc (IBM PC) aisun1.ai.uga.edu (128.192.12.9) 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. 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 . ROLOG: cs.uiuc.edu:/pub/ROLOG Parallel PROLOG compiler with a reduce-OR process model. 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 languages/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 . [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, , Computer Science and Engineering, Southern Methodist University, Dallas, Texas 75275-0122, phone 214-768-3097, or David Scott Warren, , 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, . Ported to OS/2 by Andreas Toenne, . 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 . 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. ---------------------------------------------------------------- Subject: [2-2] Commercial Prolog Implementations The Prolog Vendors' Group may be contacted by email via the Secretary, Al Roth, at . Index: Atari/Amiga: SPIES YAP Macintosh: AAIS Prolog ALS Prolog IF/Prolog IQSOFT MProlog LPA Prolog POPLOG Prolog III Quintus Prolog SPIES YAP IBM PC: ALS Prolog Arity Prolog CIM-Prolog Coder's Prolog Cogent Prolog Delphia Prolog ESL Prolog-2 (Commercial Version) IF/Prolog IQSOFT MProlog LPA Prolog OU Prolog PDC Prolog Prolog III Quintec Prolog Quintus Prolog Unix: AIAI Edinburgh Prolog ALS Prolog BIM Prolog CIM-Prolog Coder's Prolog Delphia Prolog EDCAAD C-Prolog ESL Prolog-2 (Commercial Version) IF/Prolog IQSOFT MProlog MU-Prolog, NU-Prolog POPLOG Prolog III Quintec Prolog Quintus Prolog SICStus Prolog SNI Prolog SPIES YAP Many of the following vendors offer educational discounts to universities. Be sure to ask for current pricing information. Commercial Prolog Implementations: AAIS Prolog is an Edinburgh-standard compiler and interpreter that runs on the Apple Macintosh and costs $298. 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 aais@applelink.apple.com. 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 . Prolog by BIM is a prolog compiler 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. CHIP V4 from COSYTEC. See "Constraint Systems". CIM-Prolog is a high-level emulator with interpreter for Apollo Domain and Sun. Also standard Prolog for Apollo Domain, IBM PC/AT, 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). 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 based. For more info or tech support, email amziod@world.std.com, or contact Amziod, 40 Samuel Prescott Dr., Stow, MA 01775. 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 . 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.] 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. IQSOFT MProlog is a high-level emulator with interpreter for Unix, Macintosh and IBM PC. 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. POPLOG is a high-level prolog emulator with interpreter. 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. 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 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. 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. Quintec Prolog is a high-level emulator with interpreter for IBM PC (MS-DOS), 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. 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 Sun3, Sun4, VAXstation, SGI, HP9000, Apple Macintosh and Amiga (Atari ST). 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. Parallel Prologs: 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. Object Oriented Systems: 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. Constraint 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 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. Trilogy is a constraint system developed by Complete Logic Systems. It costs $100. For more information, write to Complete Logic Systems, Inc, 741 Blueridge Avenue, V7R 2J5, North Vancouver BC, Canada, or call 604-986-3234. [This phone number was recently disconnected -- does the company still exist?] 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. ---------------------------------------------------------------- ;;; *EOF*