Start64!SWI-Prolog offers a comprehensive Free Software Prolog environment, licensed under the Lesser GNU Public License. Together with its graphics toolkit XPCE, its development started in 1987 and has been driven by the needs for real-world applications. These days SWI-Prolog is widely used in research and education as well as for commercial applications.

  • Kernel licensed under the LGPL. Prolog libraries are distributed under the GPL with an additional statement that allows for use in proprietary applications. Details can be found on the license page.
  • fast compilation. E.g., loads 140,000 lines of code spread over 500 source-files in 2.3 seconds on an AMD 5400+ system.
  • Robust and free of memory leaks. In use for several servers that run 24x7 (including this web-service).
  • Small. The full development environment, including graphics, libraries and many interface packages requires approx. 40MB harddisk. The non-graphical kernel is about 650Kb, the graphics library adds about 1.2Mb to the image.
  • Scales well for large applications. No limits on program size, atom-length, term-arity or integer values. No performance degradation on predicates with many (indexed) facts.
  • Just-In-Time indexing of both static and dynamic code on any argument greatly simplifies handling multi-moded relations with many clauses. ( version 5.11.29)
  • Unbounded integer and rational number arithmetic based on GMP library.

SWI-Prolog 64bit version

  • Comprehensive set of built-in predicates, covering Part 1 of the ISO standard, the de-facto Edinburgh Prolog standard and important parts of Quintus and SICStus Prolog. Fair compatibility to Ciao, YAP and GNU-Prolog.
  • Flexible and fast interface to the C- and C++-Language. The interface allows for calling both-ways, handling of non-determinism both ways and embedding of the SWI-Prolog kernel in C/C++ projects.
  • The goodies: modules (upward compatible to Quintus and SICStus), garbage-collection (transparent to C/C++-code, including atom garbage collection), last-call optimisation, Dynamic expansion of the runtime stacks, ISO exception-handling (including C/C++ interface for catching and throwing exceptions).
  • Source-level debugger on all platforms that supports graphics through XPCE (Windows, Unix/Linux, MacOSX).
  • Execution profiler (time and call statistics) for Linux, most Unix platforms and Windows NT/2000/XP/Vista.
  • Cross-Referencer. gxref/0 provides a graphical front-end for the extensible Prolog cross-referencer (xref).
  • Portable to many platforms, including almost all Unix/Linux platforms, Windows (NT/2000/XP/Vista, including 64-bit editions), MacOS X (using X11 for graphics) and many more. Both 32-bits and 64-bits hardware is supported. Sources are plain C99, configured automatically using GNU autoconf (configure, make, make install).
  • UNICODE character set handling internal. Ideal for web- and international applications.
  • Machine-independent saved-states (save on one platform, run using the virtual machine of another platform).
  • Multi-threading support: run multiple pre-emptively scheduled prolog engines on the same database.
  • attributed variables, coroutining (freeze/2, when/2, dif/2), global variables, cyclic terms.
  • Flag-controlled handling of occurs-check (false/true/error) see current_prolog_flag/2.
  • Constraint Logic Programming, providing libraries for CHR (Constraint Handling Rules), clp(FD), clp(R,Q) and various others.
  • Bundled with interface libraries for Java (JPL), ODBC, TCP/IP sockets, SSL, CGI form handling, etc. Check the packages.
  • Multi-threaded Web server library with comprehensive libraries to generate HTML, HTTP authorization, session management, exchanging JSON (used by many AJAX widgets), etc.
  • Fast and flexible libraries for parsing SGML/XML (HTML), parsing RDF, store and query the RDF triple model. A graphical editor for RDF/RDFS and OWL models called Triple20 is distributed seperately.
  • Literate programming support through PlDoc. Provides integrated view on manual and application documentation and producing LaTeX documentation for your application.
  • Unit testing support through PlUnit.
  • Regular binary distributions for Windows (32/64 bits) and MacOS X (64 bits)).
  • Regular distribution of the full source packages. The sources are also accesible through GIT.

SWI-Prolog 64bit version
SWI-Prolog - 64bit software