Free Prolog Compilers and Interpreters
Compilers / development systems for the Prolog programming language
Free Prolog Compilers and Interpreters
Prolog is a logic programming language, used by many for computational linguistics (where computer programs are used to process human languages) and artificial intelligence. It has also been used in other fields as well, such as games, expert systems, control systems, and so on.
This page lists various free implementations of the Prolog programming language.
Free Prolog Compilers and Implementations
Poplog is a software development system that includes incremental compilers for Pop11 (a Lisp-like language with more conventional syntax), Common Lisp (compatible with CLTL2 — Common LISP: The Language, 2nd edition), Prolog (compatible with the Edinburgh definition), and Standard ML. It comes with documentation, program libraries, and teaching materials for AI and Cognitive Science. Source code for the system (as well as example code such as the source code for the famous AI program, Eliza) is included. Supported platforms include Windows, Linux, Solaris on Sparc, Solaris on Intel, Digital Unix on Alpha, AIX on PowerPCs.
The B-Prolog implementation of Prolog includes several extensions to the standard such as (to quote from their website) "matching clauses, action rules for event handling, finite-domain constraint solving, arrays and hash tables, declarative loops and tabling". This constraint logic programming (or CLP) system is available for Windows, Mac OS X and Linux. According to their "Order" page, it looks like individual, academic and non-commercial site licences ("licenses" in US English) are free.
tuProlog is a Java-based Prolog meant for Internet applications. Your programs are deployed as a JAR file and can be run on any system with a Java Virtual Machine. It is designed to be lightweight with a minimal core that contains only the most essential properties of a Prolog engine, yet be configurable so that you can load predicates, functors and operators either statically or dynamically. The Prolog engine is released under the GNU LGPL.
C#Prolog is a Prolog interpreter written in C#. It can be integrated into your C# programs. It has a command line interface, built-in DCG, XML-predicates, persistent predicates using Firebird RDBMS (see the Free Databases page), and is extensible. This is a Windows program licensed under the GNU General Public License (GPL). It is distributed in source form.
- Open Prolog
Open Prolog supports many features of ISO Prolog, including disjunctive calls, negation, if-then and if-then-else, program originated catch and throw exception handling, the "logical" assert and retract of Lindholm & O'Keefe, automatic memory management and garbage collection (except for the name table), etc. It runs on Apple Macintosh machines running Mac OS 7.5.5 and later, as well as under the Classic environment of Mac OS X. The program is postcardware.
- Ciao Prolog
Ciao Prolog is a GNU GPL Prolog system that supports ISO Prolog as well as various extensions, such as programming with functions, objects, threads, etc. It comes with libraries that support WWW programming, sockets, interfaces to other languages (eg C, Java, TclTk, relational databases), etc. The compiler allows you to generate architecture-independent and standalone executables. The system also includes lpdoc, an automatic document generator. Precompiled binaries are available for Windows, and the sources may be compiled for Linux, Mac OS X, SunOS, Solaris, IRIX, etc.
- Visual Prolog Personal Edition
The Personal Edition of this compiler is available for Windows 8.1, 8, 7, Vista and 2000. The licence only allows you to use it for non-commercial purposes. It also creates a banner in your executables. Licence aside, you get a GUI IDE which allows you to design and draw your user interfaces instead of coding them. Also included are input/output procedures, arithmetic and string manipulation functions, B+trees and network support, operating system functions, a layer which allows you to create portable GUI applications, etc. The optimizing compiler generates native code and performs type checking, global flow analysis, determinism checking, and possible fail detection. Unlike ISO-Prolog however, you need to declare clauses in a predicates-section before you can state them as clauses.
- Kernel Prolog
From their website: Kernel Prolog is "a lightweight Java based Prolog interpreter with an innovative system of built-ins based on Fluents, a Prolog extension providing reflection and smooth interoperation with external objects." It is released under the GNU GPL, so source code is available. It also means that your programs that embed the interpreter will need to be released under GPL too, unless you pay for their commercial licence.
- GNU Prolog
This Prolog compiler complies with the ISO standard for Prolog (with useful extensions like global variables, ability to interface with the operating system, etc) and produces a native binary that can be run standalone. It is smart enough to avoid linking unused built-in predicates. It also has an interactive interpreter and a Prolog debugger as well as a low-level WAM debugger. You can interface with C code (both ways). Platforms supported include Linux (i86), SunOS (sparc) and Solaris (sparc).
- LPA Prolog Professional
This is a 16 bit MSDOS implementation of Prolog that is no longer being maintained or supported. It is a traditional Edinburgh system, where you are placed in a traditional Prolog console to enter queries, etc. The program is for non-commercial use only, and does not come with any documentation. (You probably should try other free implementations with better documentation and support.)
- Strawberry Prolog Light Edition
The freeware version of this compiler requires you to distribute the sources of your code since it does not allow you to save the compiled executable to disk. The compiler currently runs on Windows 95/NT, and a version for Unix and Macintosh is supposed to be in the works.
A Prolog compiler that may be used freely in a research and educational environment. It supports Edinburgh Prolog, and large parts of ISO, Quintus and SICStus Prolog. You can interface your Prolog code with C/C++ code (both ways). Both sources and binaries (Win32, almost all Unix platforms, etc) are provided.
How to Link to This Page
It will appear on your page as: