<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Comparison_of_Prolog_implementations</id>
	<title>Comparison of Prolog implementations - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Comparison_of_Prolog_implementations"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Comparison_of_Prolog_implementations&amp;action=history"/>
	<updated>2026-10-25T21:04:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Comparison_of_Prolog_implementations&amp;diff=5156342&amp;oldid=prev</id>
		<title>imported&gt;Citation bot: Added pages. | Use this bot. Report bugs. | Suggested by Dominic3203 | Category:Software comparisons | #UCB_Category 70/101</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Comparison_of_Prolog_implementations&amp;diff=5156342&amp;oldid=prev"/>
		<updated>2025-02-07T21:08:25Z</updated>

		<summary type="html">&lt;p&gt;Added pages. | &lt;a href=&quot;/wiki143/index.php?title=En:WP:UCB&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;En:WP:UCB (page does not exist)&quot;&gt;Use this bot&lt;/a&gt;. &lt;a href=&quot;/wiki143/index.php?title=En:WP:DBUG&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;En:WP:DBUG (page does not exist)&quot;&gt;Report bugs&lt;/a&gt;. | Suggested by Dominic3203 | &lt;a href=&quot;/wiki143/index.php?title=Category:Software_comparisons&quot; title=&quot;Category:Software comparisons&quot;&gt;Category:Software comparisons&lt;/a&gt; | #UCB_Category 70/101&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{short description|None}}&lt;br /&gt;
[[File:Early Prolog timeline.svg|thumb|upright=2|Timeline of some early Prolog systems, up to the ISO Standard]]&lt;br /&gt;
The following &amp;#039;&amp;#039;&amp;#039;Comparison of Prolog implementations&amp;#039;&amp;#039;&amp;#039; provides a reference for the relative feature sets and performance of different implementations of the [[Prolog]] computer [[programming language]].  A comprehensive discussion of the most significant [[Prolog]] systems is presented in an article published in the 50-years of Prolog anniversary issue of the journal &amp;#039;&amp;#039;Theory and Practice of Logic Programming&amp;#039;&amp;#039; (TPLP).&amp;lt;ref name=prolog50&amp;gt;{{citation |author=Philipp Körner |author2=Michael Leuschel |author3=João Barbosa |author4=Vítor Santos Costa |author5=Verónica Dahl |author6=Manuel V. Hermenegildo |author7=Jose F. Morales |author8=Jan Wielemaker |author9=Daniel Diaz |author10=Salvador Abreu |author11=Giovanni Ciatto |title=Fifty Years of Prolog and Beyond |date=November 2022 |journal=Theory and Practice of Logic Programming|volume=22|issue=6 |pages=776–858 |doi=10.1017/S1471068422000102 |doi-access=free|hdl=10174/33387 |hdl-access=free }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Portability==&lt;br /&gt;
[[File:Prolog systems.svg|thumb|upright=2|Prolog Heritage.&amp;lt;br /&amp;gt;Systems with a dark gray background are not supported any more. Arrows denote influences and inspiration of systems. Quick legend: JIT = &amp;quot;Just in Time Compiler&amp;quot;, JVM = &amp;quot;Java Virtual Machine&amp;quot;, TOAM = &amp;quot;Tree-Oriented Abstract Machine&amp;quot;]]&lt;br /&gt;
There are Prolog [[Programming language implementation|implementations]] that are radically different, with different syntax and different semantics (e.g. Visual Prolog)&amp;lt;ref name=portability2011&amp;gt;{{Cite book | last1 = Wielemaker | first1 = J. | last2 = Costa | first2 = V. T. S. | chapter = On the Portability of Prolog Applications | doi = 10.1007/978-3-642-18378-2_8 | title = Practical Aspects of Declarative Languages | series = Lecture Notes in Computer Science | volume = 6539 | pages = 69–83 | year = 2011 | isbn = 978-3-642-18377-5 | citeseerx = 10.1.1.1030.9396 }}&amp;lt;/ref&amp;gt; and sub-communities have developed around different implementations.&amp;lt;ref name=portability2011/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Code that strictly conforms to the ISO-Prolog core language is portable across ISO-compliant implementations. However, the ISO standard for modules is an extension which was not fully adopted in most Prolog systems.&amp;lt;ref name=portability2011/&amp;gt;&amp;lt;ref name=prolog50/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Factors that can adversely affect portability include:  use of bounded vs. unbounded integer arithmetic, additional types such as string objects, advanced numeric types (rationals, complex), feature extensions such as [[Unicode]], threads, and tabling.&amp;lt;ref&amp;gt;Jan Wielemaker and Vıtor Santos Costa: [http://www.swi-prolog.org/download/publications/porting.pdf Portability of Prolog programs: theory and case-studies]. [http://www.floc-conference.org/CICLOPS-WLPE-accepted.html CICLOPS-WLPE Workshop 2010] {{Webarchive|url=https://web.archive.org/web/20100716184811/http://www.floc-conference.org/CICLOPS-WLPE-accepted.html |date=2010-07-16 }}.&amp;lt;/ref&amp;gt;  Use of libraries unavailable in other implementations and library organisation:&amp;lt;ref name=portability2011/&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;Currently, the way predicates are spread over the libraries and system built-ins differs enormously. [...] Fortunately, there are only few cases where we find predicates with the same name but different semantics (e.g. &amp;lt;code&amp;gt;delete/3&amp;lt;/code&amp;gt;)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Main features==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Platform&lt;br /&gt;
! colspan=&amp;quot;8&amp;quot; | Features&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Toolkit&lt;br /&gt;
!| Prolog Mechanics&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | OS&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Licence&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|Native Graphics}}&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|Compiled Code}}&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|Unicode}}&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|Object Oriented}}&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|Native OS Control}}&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|Stand Alone Executable}}&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|C Interface{{efn|name=&amp;quot;C&amp;quot;|C/Java interface can also be used for graphics and OS control.}}}}&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|Java Interface{{efn|name=&amp;quot;C&amp;quot;}}}}&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|Interactive Interpreter}}&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|Debugger}}&lt;br /&gt;
! {{verth|cellstyle=background:#ffdead;|Code Profiler}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Syntax&lt;br /&gt;
|-&lt;br /&gt;
|AllegroProlog&amp;lt;ref&amp;gt;[https://franz.com/products/allegro-common-lisp/acl_prolog.lhtml Allegro Prolog]&amp;lt;/ref&amp;gt;&lt;br /&gt;
|[[Unix]], [[Microsoft Windows|Windows]], [[Mac OS X]]&lt;br /&gt;
|{{proprietary}} (limited free edition available)&lt;br /&gt;
|&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{Yes}}, via Lisp&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{Yes}}, via Lisp&lt;br /&gt;
|{{Yes}}, via Lisp&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{Yes}}, via Lisp&lt;br /&gt;
|S-expressions. Full Common Lisp integration.&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[BProlog]]&lt;br /&gt;
|[[Unix]], [[Microsoft Windows|Windows]], [[Mac OS X]]&lt;br /&gt;
|{{proprietary}} (free for non-commercial uses)&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|ISO-Prolog, plus event-handling, CLP(FD), and tabling&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Ciao (programming language)|Ciao]]&lt;br /&gt;
|[[Unix]], [[Microsoft Windows|Windows]], [[Mac OS X]]&lt;br /&gt;
|{{open source|[[GPL]], [[GNU Lesser General Public License|LGPL]]}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|ISO-Prolog, plus extensions&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|DOS-Prolog&amp;lt;ref&amp;gt;{{Cite web |date=5 November 2023 |title=DOS-Prolog 8.0 |url=https://www.lpa.co.uk/dos.htm |website=Logic Programming Associates}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|[[MS-DOS]]&lt;br /&gt;
|{{proprietary}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|Edinburgh Prolog&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[ECLiPSe]]&lt;br /&gt;
|[[Linux]], [[Microsoft Windows|Windows]], [[Solaris (operating system)|Solaris]], [[macOS]]&lt;br /&gt;
|{{open source|[[Mozilla Public License|MPL]]}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|Extended Prolog, Multi-dialect, including ISO&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[GNU Prolog]]&lt;br /&gt;
|[[Unix]], [[Microsoft Windows|Windows]], [[Mac OS X]]&lt;br /&gt;
|{{open source|[[GNU General Public License|GPL]], [[LGPL]]}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|ISO-Prolog&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[JIProlog]]&amp;lt;ref&amp;gt;[http://www.jiprolog.com JIProlog]&amp;lt;/ref&amp;gt;&lt;br /&gt;
|[[JVM]], [[Android (operating system)|Android]]&lt;br /&gt;
|{{open source|[[GNU Affero General Public License|AGPL]] (commercial support available)}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}} via Java&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}} via Java&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|ISO-Prolog&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|JLog&amp;lt;ref name=&amp;quot;JLog Homepage&amp;quot;&amp;gt;{{Cite web |title=JLog Homepage |url=https://jlogic.sourceforge.net/ |access-date=2023-11-03 |website=jlogic.sourceforge.net}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|[[JVM]]&lt;br /&gt;
|{{open source|[[GNU General Public License|GPL]]}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|ISO-Prolog&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|JScriptLog&amp;lt;ref name=&amp;quot;JLog Homepage&amp;quot;/&amp;gt;&lt;br /&gt;
|Web Browser&lt;br /&gt;
|{{open source|[[GNU General Public License|GPL]]}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|ISO-Prolog&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|jTrolog&amp;lt;ref&amp;gt;{{Cite web |date=2012-11-13 |title=Jtrolog — Java.net |url=http://java.net/projects/jTrolog |access-date=2023-11-03 |archive-url=https://web.archive.org/web/20121113023104/http://java.net/projects/jTrolog |archive-date=2012-11-13 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|[[JVM]]&lt;br /&gt;
|{{open source|[[GNU Lesser General Public License|LGPL]]}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|ISO-Prolog&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|WIN-Prolog&amp;lt;ref&amp;gt;{{Cite web |date=5 November 2023 |title=WIN-Prolog 8.0 |url=https://www.lpa.co.uk/win.htm |website=Logic Programming Associates}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|[[Microsoft Windows|Windows]]&lt;br /&gt;
|{{proprietary}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|Edinburgh Prolog with extensions&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|Open Prolog&amp;lt;ref&amp;gt;[https://web.archive.org/web/20050203201646/http://www.cs.tcd.ie/open-prolog/ Open Prolog Home Page]&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Mac OS [[System 7]]&lt;br /&gt;
|{{proprietary|[[Freeware]]}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Poplog]] Prolog&lt;br /&gt;
|[[Linux]] (32- and 64-bit), [[Unix]], [[Microsoft Windows|Windows]] &lt;br /&gt;
|{{open source|Free Open Source}}&lt;br /&gt;
|Only through [[POP-11]], on Linux&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|Edinburgh Prolog, with interfaces to Poplog Common Lisp and Pop-11&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Scryer Prolog]]&amp;lt;ref&amp;gt;[https://www.scryer.pl Scryer Prolog]&amp;lt;/ref&amp;gt;&lt;br /&gt;
|[[Linux]], [[Microsoft Windows|Windows]], [[macOS]]&lt;br /&gt;
|{{open source|[[BSD License]]}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|ISO-Prolog&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[SICStus Prolog]]&lt;br /&gt;
|[[Unix]], [[Linux]], [[Microsoft Windows|Windows]], [[macOS]]&lt;br /&gt;
|{{proprietary}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|[[Comparison of Prolog standards compliance|ISO-Prolog]]&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Strawberry Prolog]]&amp;lt;ref&amp;gt;[https://dobrev.com Strawberry Prolog]&amp;lt;/ref&amp;gt;&lt;br /&gt;
|[[Unix]], [[Microsoft Windows|Windows]]&lt;br /&gt;
|{{proprietary|[[Freeware]]}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|Not ISO-Prolog + extensions&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[SWI-Prolog]]&lt;br /&gt;
|[[Unix]], [[Linux]], [[Microsoft Windows|Windows]], [[macOS]]&lt;br /&gt;
|{{open source|[[BSD License]]}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|ISO-Prolog, Edinburgh Prolog&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[tuProlog]]&amp;lt;ref&amp;gt;[http://tuprolog.unibo.it tuProlog]&amp;lt;/ref&amp;gt;&lt;br /&gt;
|[[JVM]], [[Android (operating system)|Android]]&lt;br /&gt;
|{{open source|[[GNU Lesser General Public License|LGPL]]|}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|ISO-Prolog&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Visual Prolog]]&lt;br /&gt;
|[[Microsoft Windows|Windows]]&lt;br /&gt;
|{{proprietary|[[Freeware]]}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[XSB|XSB Prolog]]&lt;br /&gt;
|[[Linux]], [[Microsoft Windows|Windows]], [[Solaris (operating system)|Solaris]], [[macOS]]&lt;br /&gt;
|{{open source|[[GNU Lesser General Public License|LGPL]]}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|ISO-Prolog, tabled WFS&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[YAP-Prolog]]&lt;br /&gt;
|[[Linux]], [[Microsoft Windows|Windows]], [[Solaris (operating system)|Solaris]], [[Mac OS X]], [[HP-UX]]&lt;br /&gt;
|{{open source|[[GNU General Public License|GPL]] or Artistic (user choice)}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|&lt;br /&gt;
|ISO-Prolog, Edinburgh Prolog, Quintus and SICStus Prolog compatible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Operating system and web-related features==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | OS-related&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Web-related&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Conditional compilation&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Sockets&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Multi-threading&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Tabling&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | HTTP client&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | HTTP server&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | HTML Parser&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | RDF Triple store&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[BProlog]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Ciao (programming language)|Ciao]]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[ECLiPSe]]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[GNU Prolog]]&lt;br /&gt;
| &lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[WIN-Prolog]]&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Scryer Prolog]]&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[SICStus Prolog]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[SWI-Prolog]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|  {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Visual Prolog]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[XSB]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[YAP-Prolog]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Static analysis==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Type checker&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Determinacy checker&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Call-pattern checker&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Ciao (programming language)|Ciao]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[GNU Prolog]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[SICStus Prolog]]&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[SWI-Prolog]]&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Visual Prolog]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[XSB]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[YAP-Prolog]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Optimizations==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | [[Tail-call optimization|Tail-Call Optimization]]&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Choice Point Elimination&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Environment Trimming&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | [[Term indexing|Just-in-Time Indexing]]&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Ciao (programming language)|Ciao]]&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{dunno}}&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[ECLiPSe]]&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{n/a|multi-argument (compile time)}} &lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[GNU Prolog]]&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[SICStus Prolog]]&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[SWI-Prolog]]&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[Visual Prolog]]&lt;br /&gt;
| {{yes|Yes (compile time)}}&lt;br /&gt;
| {{yes|Yes (compile time)}}&lt;br /&gt;
| {{n/a|N/A}}&lt;br /&gt;
| {{n/a|N/A (compile time)}} &lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[XSB]]&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{dunno}}&lt;br /&gt;
|-&lt;br /&gt;
|{{rh}}|[[YAP-Prolog]]&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Version&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Date&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; | AllegroProlog&lt;br /&gt;
|1.1.2&lt;br /&gt;
|2018-12-12&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[BProlog]]&lt;br /&gt;
|8.1&lt;br /&gt;
|2014-02-23&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[JIProlog]]&lt;br /&gt;
|4.1.7.1&lt;br /&gt;
|2021-08-26&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[Ciao (programming language)|Ciao]]&lt;br /&gt;
|1.22&lt;br /&gt;
|2022-09-28&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |DOS-Prolog&lt;br /&gt;
|8.0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[ECLiPSe]]&lt;br /&gt;
|7.1&lt;br /&gt;
|2023-01-01&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[GNU Prolog]]&lt;br /&gt;
|1.5.0&lt;br /&gt;
|2023-02-21&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[http://jlogic.sourceforge.net/ JLog]&lt;br /&gt;
|1.3.6&lt;br /&gt;
|2007-09-13&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[http://jlogic.sourceforge.net/ JScriptLog]&lt;br /&gt;
|0.7.5 beta&lt;br /&gt;
|2007-09-10&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[https://web.archive.org/web/20121113023104/http://java.net/projects/jTrolog jTrolog]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |WIN-Prolog&lt;br /&gt;
|8.0&lt;br /&gt;
|2022-07-14&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |Open Prolog&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[Poplog]] Prolog&lt;br /&gt;
|V16&lt;br /&gt;
|2020-01-06&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[Scryer Prolog]]&lt;br /&gt;
|0.9.3&lt;br /&gt;
|2023-11-02&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[SICStus Prolog]]&lt;br /&gt;
|4.9.0&lt;br /&gt;
|2023-12-18&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[Strawberry Prolog]]&lt;br /&gt;
|6.1 &lt;br /&gt;
|2023-08-23&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[SWI-Prolog]]&lt;br /&gt;
|9.1.18&lt;br /&gt;
|2023-11-01&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[tuProlog]]&lt;br /&gt;
|2P-Kt 0.31.18&lt;br /&gt;
|2023-10-24&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[Visual Prolog]]&lt;br /&gt;
|10, Build 1000&lt;br /&gt;
|2021-04-15&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[XSB]] Prolog&lt;br /&gt;
|5.0&lt;br /&gt;
|2022-05-15&lt;br /&gt;
|-&lt;br /&gt;
| {{rh}} class=&amp;quot;table-rh&amp;quot; |[[YAP (Prolog)|YAProlog]]&lt;br /&gt;
|7.1.0&lt;br /&gt;
|2020-12-19&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Benchmarks==&lt;br /&gt;
* Benchmarking issues: [http://www.cs.kuleuven.be/publicaties/rapporten/cw/CW312.abs.html Odd Prolog benchmarking], Performance differences.&amp;lt;ref&amp;gt;B. Demoen, and P. Nguyen, About unnecessary performance differences between Prolog implementations, Proceedings of the Colloquium on Implementation of Constraint and Logic Programming Systems (CICLOPS 2001)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Benchmarking software: [https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/code/library/0.html older], [http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/code/bench/dobry.txt Dobry&amp;#039;s Benchmarks]&amp;lt;!-- {{dead link|date=August 2017 |bot=InternetArchiveBot |fix-attempted=yes }} --&amp;gt;, [http://portal.acm.org/citation.cfm?id=893977 Aquarius benchmark suite], (Bothe, 1990),&amp;lt;ref&amp;gt;{{Cite journal| year = 1990| doi = 10.1145/122193.122197| pages = 54–60| volume = 25| journal = ACM SIGPLAN Notices| title = A prolog space benchmark suite| last1 = Bothe | first1 = K.| issue = 12| doi-access = free}}&amp;lt;/ref&amp;gt; [http://www.cs.kuleuven.be/~bmd/hProlog/iclpgcbenches.tar.gz (Demoen et al. 2001)], [http://www.cs.unipr.it/China/Benchmarks/descriptions benchmark descriptions]&lt;br /&gt;
* Benchmarking results: [https://web.archive.org/web/20100227050426/http://www.probp.com/performance.htm B-Prolog], [https://web.archive.org/web/20080203174047/http://www.sics.se/isl/sicstuswww/site/performance.html SICStus], XSB,&amp;lt;ref&amp;gt;[http://citeseer.ist.psu.edu/swift93summary.html A Summary of XSB Performance (1993)]&amp;lt;/ref&amp;gt; SICStus vs Yap vs {{proper name|hProlog}}&amp;lt;ref&amp;gt;{{Cite book| volume = 2401| pages = 194–208| year = 2002| doi = 10.1007/3-540-45619-8_14| chapter = Copying Garbage Collection for the WAM: to Mark or Not to Mark? | first3 = R. | first1 = B.| title = Logic Programming| last2 = Nguyen | first2 = P. L.| last3 = Vandeginste| last1 = Demoen| series = Lecture Notes in Computer Science| isbn = 978-3-540-43930-1| citeseerx = 10.1.1.13.2586}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Benchmarking results: [https://web.archive.org/web/20110719062358/http://www.michaels-website.de/2010/08/prolog-in-the-jvm-survey-of-prolog-engines-written-in-java/ Survey of java prolog engines] by Michael Zeising&lt;br /&gt;
* Benchmarking results: [https://www3.cs.stonybrook.edu/~pfodor/openrulebench_web/ OpenRuleBench yearly open-source benchmark of rule engines]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
{{notelist}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://www.complang.tuwien.ac.at/ulrich/prolog_misc/systems.html Overview of Prolog Systems] by Ulrich Neumerkel&lt;br /&gt;
* [http://www.complang.tuwien.ac.at/ulrich/iso-prolog/conformity_assessment Conformity assessment I: Syntax]&lt;br /&gt;
&lt;br /&gt;
[[Category:Prolog programming language family]]&lt;br /&gt;
[[Category:Software comparisons]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Citation bot</name></author>
	</entry>
</feed>