All categories

GNU Prolog 1.4.2

Free GNU Prolog is a free Prolog compiler with constraint solving over finite domains
4.5 
Latest version:
1.5.0 See all
Developer:

GNU Prolog is a free Prolog compiler with constraint solving over finite domains. GNU Prolog accepts Prolog constraint programs and produces native binaries (like gcc does from a C source). The obtained executable is then stand-alone. The size of this executable can be quite small since GNU Prolog can avoid to link the code of most unused built-in predicates. The performances of GNU Prolog are very encouraging. Beside the native-code compilation, GNU Prolog offers a classical interactive interpreter (top-level) with a debugger. The Prolog part conforms to the ISO standard for Prolog with many extensions very useful in practice. GNU Prolog also includes an efficient constraint solver over Finite Domains (FD). This opens contraint logic programming to the user combining the power of constraint programming to the declarativity of logic programming.


v1.4 [Jul 7, 2011]
port to x86_64/MSVC (see src/WINDOWS64); add a configure option to control Windows HtmlHelp --disable-htmlhelp or --enable-htmlhelp[=static/dynamic]; improve a lot (and fix some bugs in) the Windows GUI Console; change location of gprologvars.bat under Windows (in install directory); increase default stack sizes (32Mb for heap, 16Mb for others); change the default setting for flag strict_iso: it is on now; add control constructs to the predicate table; modify predicate_property/2 (built_in_fd ==> built_in, add control_construct) only accepts a Head (a callable) (no longer a predicate indicator); fix a bug in the compiler (bad unification with singleton variable); fix a bug with strict_iso flag (was not passed to consult); add shebang support using #!/usr/bin/gprolog --consult-file; modify the mangling scheme for future module support (see hexgplc); fix write_term default options (now numbervars(false) and namevars(false)); fix read/1: tab and newlines are not accepted inside single/back/double quoted tokens; add additional errors to compare/3 and keysort/2; accept space under the top-level (same as ;); modify portray_clause/1-2 to add a newline at the end of the output; add acyclic_term/1 (compatibility only since GNU Prolog does not handle cyclic terms); fix write/1 to treat '$VARNAME'(Atom) as a var name only if Atom is a valid var name; rename evaluable functor atan/2 as atan2/2 and >< as xor; add evaluable functor div/2; detecop/3 error cases for | [] {}; replace type_error(variable, X) by uninstantiation_error(X) (e.g. open/3-4); add built-in term_variables/2-3 and subsumes_term/2; add some type tests on chars and codes (in number_chars/2, number_codes/2,..); fix some little bugs in the parser; add meta_predicate property to predicate_property/2; fix a memory leak in atom_concat/3 (in case of failure); add infix operator '|' (and allow it to be unquoted in read/write); improve top-level variables display adding () when needed; support the ISO multifile/1 directive; add built-ins false/0 and forall/2; detect an instantation_error in phrase/2-3; allow rounding functions to accept an integer if strict_iso is off; group all examples under a new directory 'examples'; fix a bug in read_from_codes/2 and number_codes/2; improve speed of built-in predicates on list (append, member, reverse,...).; improve CTRL+C handling under the top-level; add is_list/1 (same as list/1); add Prolog flags: dialect, home, host_os, host_vendor, host_cpu, host, arch, version, version_data, unix, argv; add preprocessor directives if/1 else/0 elif/1 endif/0; fix a bug on large ints in the byte-code for 64-bits machine; fix a bug with call/2-N; change listing/0-1 printing stream: now it is current_output; add a new stream alias: user_error associated to stderr; add evaluable functors: (a)sinh/1, (a)cosh/1, (a)tanh/1; add evaluable functors: epsilon/0, lsb/1, msb/1, popcount/1; fix compilation problem under Mac OS X Snow Leopard (force 32-bits mode); add evaluable functors: log/2, gcd/2, tan/1, atan2/2, pi/0, e/0; add built-in ground/1; rename built-in sort0 as msort; add new error detection for keysort;accept (but ignore) directive encoding/1; add xor/2 (bitwise XOR) ^/2 becomes integer exponentiation; improve randomize/0 (more different values on consecutive calls);relax the lexer to also accept 0'' (ISO requires 0''' or 0'\') is strict_iso is off; fix a bug with top-level options --entry-goal and --query-goal

Suggestions

XAMPP
XAMPP
Free

Development environment for PHP

Code::Blocks
Code::Blocks
Free

Programs & provides debugging support for apps developed in C, C++ and Fortran

SCRATCH
SCRATCH
Free

Creates interactive content from the user's media files

Download
Free