New York University Faculty of Arts and Science College of Arts and Science Graduate School of Arts and Science

Computing Resources

gprolog (version 1.2.16)

GNU Prolog is a native Prolog compiler with constraint solving over finite domains (FD) developed by Daniel Diaz (http://loco.inria.fr/~diaz). Last information can be found at http://www.gnu.org/software/prolog or better at http://gprolog.inria.fr.

A lot of work has been devoted to the ISO compatibility. GNU Prolog is very close to the ISO standard (http://www.logic-programming.org/prolog_std.html).

Here are some features of GNU Prolog:

Prolog system:

- conforms to the ISO standard for Prolog (integer/floating arithmetic, streams, dynamic code, exceptions). - clause indexing. - a lot of extensions: global variables, definite clause grammars (DCG), sockets interface, operating system interface,... - more than 300 Prolog built-in predicates. - Prolog debugger and a low-level WAM debugger. - line editing facility under the interactive interpreter with completion on atoms. - powerful bidirectional interface between Prolog and C.

Compiler:

- native-code compiler producing stand alone executables. - simple command-line compiler accepting a wide variety of files: Prolog files, C files, WAM files,... - direct generation of assembly code 15 times faster than wamcc + gcc. - most of unused built-in predicates are not linked (to reduce the size of the executables). - compiled predicates (native-code) as fast as wamcc on average. - consulted predicates (byte-code) 5 times faster than wamcc.

Constraint solver:

- FD variables well integrated into the Prolog environment (full compatibility with Prolog variables and - integers). No need for explicit FD declarations. - very efficient FD solver (comparable to commercial solvers). - high-level constraints can be described in terms of simple primitives. - a lot of predefined constraints: arithmetic constraints, boolean constraints, symbolic constraints, reified constraints,... - several predefined enumeration heuristics. - the user can define his own new constraints. - more than 50 FD built-in constraints/predicates.

Docs