General Compilers
Source Code Documentation
PrologDoc
PlDoc
PlDoc is the SWI-Prolog source-code documentation infrastructure. PlDoc is loosely based on JavaDoc, using structured comments to mix documentation with source-code. SWI-Prolog's PlDoc is entirely written in Prolog and well integrated with the environment. It can create HTML+CSS and LaTeX documentation files as well as act as a web-server for the loaded project during program development.
http://www.swi-prolog.org/packages/pldoc.html
Databases with Prolog
Prolog and Web Pages
Editing Prolog Code
GNU emacs is the editor of choice for many, offering:
Ediprolog for Emacs – editing and executing prolog code in any buffer.
-
Emacs is the extensible, customizable, self-documenting real-time display editor.
If this seems to be a bit of a mouthful, an easier explanation is Emacs is a text editor and more. At its core is an interpreter for Emacs Lisp (“elisp”, for short), a dialect of the Lisp programming language with extensions to support text editing. Some of the features of GNU Emacs include:
Content sensitive major modes for a wide variety of file types, from plain text to source code to
HTML files, with syntax coloring.
Complete built-in documentation, including a tutorial for new users.
Highly extensible through the Emacs Lisp language.
Support for many languages and their scripts, including all the European “Latin” scripts, Russian, Greek, Japanese, Chinese, Korean, Thai, Vietnamese, Lao, Ethiopian, and some Indian scripts. (Sorry, Mayan hieroglyphs are not supported.)
A large number of extensions which add other functionality. The GNU Emacs distribution includes many extensions; many others are available separately—even a web browser
Emacs Web Site
Ediprolog
ediprolog.el is an Emacs mode which lets you transparently interact with SWI Prolog.
Syntax highlighting is included.
You can load and syntax-check Prolog programs and execute queries with minimal exposure to the toplevel. Queries start with '?-' or ':-', possibly preceded by '%' and whitespace.
To install, copy ediprolog.el to your home directory, and add to your .emacs:
(load "~/ediprolog")
(global-set-key [f10] 'ediprolog-dwim)
More info: http://stud4.tuwien.ac.at/~e0225855/ediprolog/ediprolog.html
Tramp Emacs
Transparent Remote (file) Access, Multiple Protocol.
This package provides remote file editing, similar to Ange-FTP.
The difference is that Ange-FTP uses FTP to transfer files between the local and the remote host, whereas TRAMP uses a combination of rsh and rcp or other work-alike programs, such as ssh/scp
Emacs Goodies for Debian
The file you're currently reading is mostly meant as an introductory
starter for the various goodies included in emacs-goodies-el. Consult the
Info node `emacs-goodies-el' for more complete information.
See: http://packages.debian.org/emacs-goodies-el
Java and Prolog
JPL
JPL is a set of Java classes and C functions providing an interface between Java and Prolog. JPL uses the Java Native Interface (JNI) to connect to a Prolog engine through the Prolog Foreign Language Interface (FLI), which is more or less in the process of being standardized in various implementations of Prolog. JPL is not a pure Java implementation of Prolog; it makes extensive use of native implementations of Prolog on supported platforms. The current version of JPL only works with SWI-Prolog.
Currently, JPL only supports the embedding of a Prolog engine within the Java VM. Future versions may support the embedding of a Java VM within Prolog, so that, for example, one could take advantage of the rich class structure of the Java environment from within Prolog.
JPL is designed in two layers, a low-level interface to the Prolog FLI and a high-level Java interface for the Java programmer who is not concerned with the details of the Prolog FLI. The low-level interface is provided for C programmers who may wish to port their C implementations which use the FLI to Java with minimal fuss.
Some instructions regarding installing JPL for Linux.
InterProlog
InterProlog is an open source Java front-end and functional enhancement for standard Prologs, running on Windows, Linux and Mac OS X, and currently supporting the top open source logic engines: XSB Prolog from the USA (most declarative), SWI Prolog from the Netherlands (best environment) and YAP Prolog from Portugal (fastest). InterProlog comes with Prolog term visualization aids and programming examples, namely a graphical Sudoku puzzle editor and solver.
InterProlog provides Java with the ability to call any Prolog goal through a PrologEngine object, and for Prolog to invoke any Java method through a javaMessage predicate, while passing virtually any Java objects and Prolog terms between both languages with a single instruction.
Mutual recursion and (Java) multithreading are supported. Java Reflection and Serialization mechanisms, together with Prolog’s natural strengths, are used to give the combination great flexibility and dynamism. Rather than tasting like an objectified Prolog/C interfaces, InterProlog provides a higher-level API equating objects to terms, inducing a more concise and declarative programming style.
Java <-> Prolog via Sockets
mProlog
mProlog is a sub-product of the 3APL-M project. It delivers a reduced Prolog engine, optimized for J2ME applications. The mProlog engine was developed based on the W-Prolog project from Michael Winikoff. The 3APL-M project a platform for building applications using Artificial Autonomous Agents Programming Language (3APL) as the enabling logic for the deliberation cycles and internal knowledge representation.
more reading at http://www.cs.uu.nl/3apl-m/mprolog.html
JSP with Prolog
Prolog2Java
PrologCafe is a Prolog-to-Java source-to-source translator system.
Unsorted
XML and Prolog
Prolog in Javascript
Prolog and Eclipse
The Prolog Development Tool - A Prolog IDE for Eclipse
from their page:
The PDT is a Prolog IDE provided as a plug-in for the Eclipse Platform . Current features include:
A comfortable Prolog editor offering code completion, syntax checking and highlighting, and an outline.
A Prolog console view offering bash-like completion and command history.
A reusable Java
API for communiating with SWI-Prolog .