Movatterモバイル変換


[0]ホーム

URL:


The GNU Prolog web site

The GNU Prolog logo


GNU Prolog is a free Prolog compiler with constraint solvingover finite domains developed byDaniel Diaz.
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 (comparable to commercial systems).

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 (global variables, OS interface, sockets,...).

GNU Prolog also includes an efficient constraint solver over FiniteDomains (FD). This opens contraint logic programming to the user combiningthe power of constraint programming to the declarativity of logic programming.

  • Prolog system:
  • Compiler:
  • Constraint solver:
  • The GNU Prolog compiler is based on the Warren Abstract Machine (WAM). It first compiles a Prolog program to a WAM file which is thentranslated to a low-level machine independent language called mini-assemblyspecifically designed for GNU Prolog. The resulting file is then translatedto the assembly language of the target machine (from which an object isobtained). This allows GNU Prolog to produce a native stand alone executablefrom a Prolog source (similarly to what does a C compiler from a C program).The main advantage of this compilation scheme is to produce native codeand to be fast. Another interesting feature is that executables are small.Indeed, the code of most unused built-in predicates can be excluded fromthe executables at link-time.

    GNU Prolog also includes an efficient constraint solver over FiniteDomains (FD). The key feature of the GNU Prolog solver is the use of a single(low-level) primitive to define all (high-level) FD constraints. There aremany advantages of this approach: constraints can be compiled, the user candefine his own constraints (in terms of the primitive), the solver is openand extensible (as opposed to black-box solvers like CHIP),...Moreover, theGNU Prolog solver is rather efficient, often more than commercial solvers.

    GNU Prolog is inspired by two systems developed by the same author:
    The development of GNU Prolog started in January 1996 under the name Calypso.

    Currently the following architectures are supported: If you are interested in porting GNU Prolog to another architectureread the PORTING file in src.

    You can consult the following files:

    This manual is available in the following formats:

    We provide both source and binary distributions for GNU Prolog.

    Source distributions:

    Binary distributions: Other versions: Some of these files can also be downloaded from the primaryGNU ftp site or from anymirror.

    TheGIT repository is hosted by GitHub.

    For windows users, a Notepad++ User Defined Lanuage(UDL)profile file for GNU Prolog (alsoavailable from theNotepad++wiki about UDL). To install: launch Notepad++, in the "Language" menu,chose "Define your own language", click on "Import" and select the downloaded .xmlfile. Then close and restart Notepad++. Files suffixed with ".pl" and ".pro" shouldbe now recognized as Prolog files (else select "Prolog (GNU)" from the "Languages"menu). For more information seetheNotepad++wiki.

    GNU Prolog is present on the Black Duck Open Hub site.

    Contributions are welcome. If you want to include your contribution please post a mail tousers-prolog@gnu.org (for more information on this listclick here). Here is a list of available contributions:

    The mailing listusers-prolog@gnu.org: is for communicating with other GNU Prolog users and/or implementors:
    The mailing listbug-prolog@gnu.org: is for reporting bugs:
  • To inform other uses send a mail tobug-prolog@gnu.org.
  • To (un)subscribe to this list send a mail tobug-prolog-request@gnu.orgwith (un)subscribe in the subject line.
  • You can also (un)subscribe via the web athttp://mail.gnu.org/mailman/listinfo/bug-prolog.

  • From the same site you can alsobrowse the archive.

    Bug reports are crucial for our work. If we don't know aboutproblems, we cannot fix them. On the other hand it is a waste of time toread/check/answer for bugs which are not bugs ! Please consult the manual(anon-line version is available). If youcan try to check if the bug occurs with the last unstable version (all unstable versions are here). If you already use the last unstableversion trythe last stable version. When you are sure you have discovered a bug,please report it tobug-prolog@gnu.org (for more information on this listclick here).

    Your report should include all these things:




    Copyright (C) 1999-2021 Daniel Diaz

    Verbatim copying and distribution of this entire article is permittedin any medium, provided this notice is preserved.
     



    [8]ページ先頭

    ©2009-2025 Movatter.jp