What is SWI-Prolog?
"Software-Patents" in Europe: The threat
prevails
European Parliament said No to software patents
with 648 votes against 14. Open Source and smaller innovative
compagnies have won a battle, but not yet the war.
Please be aware of the danger. More info at the FFII website as well as
the FSF website.
And now about SWI-Prolog ...
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.
See our download statistics.
SWI-Prolog 5.6.x most important features are:
- 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.
- Very fast compilation.
- Robust.
- Small. The full development environment, including graphics,
libraries and many interface packages requires approx. 28MB harddisk.
The non-graphical kernel is about 1.1 MB, the graphics library
adds about 1.2 MB to the image. The kernel can be in a shared
object (.so, .DLL).
- Scales well for large applications. No limits on program size,
atom-length, functor-arity or integer values. No performance
degradation on predicates with many (indexed) facts. Handles
Wordnet with ease (loads in 1.1 sec on an AMD 1600+).
Each individual runtime stack is limited to 128 MB on 32-bit
machines and virtually unlimited on 64-bit hardware.
Unbounded integer and rational number arithmetic based on
GMP library.
- 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).
- 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/1, when/2, dif/2),
global variables, cyclic terms. Flag-controlled handling of
occurs-check (on/off/error).
- 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 ( HTTP)
library with extensive libraries for generation HTML, HTTP authorization,
session management, exchanging JSON (used by many AJAX widgets),
etc.
- Fast and flexible libraries for parsing SGML (HTML) and XML, 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 most popular platforms
(Windows (32/64 bits), Linux (32 bits) and MacOS X (32 bits)).
- Regular distribution of the full source packages. The sources are
also accesible through GIT.
|
This page is maintained using the chpp macro language
|