The following comparison of Prolog implementations 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 Theory and Practice of Logic Programming (TPLP).

Portability

There are Prolog implementations that are radically different, with different syntax and different semantics (e.g. Visual Prolog) and sub-communities have developed around different implementations.

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.

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.Jan Wielemaker and Vıtor Santos Costa: Portability of Prolog programs: theory and case-studies. CICLOPS-WLPE Workshop 2010 . Use of libraries unavailable in other implementations and library organisation: 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. delete/3)

Main features Platform Features Toolkit Prolog Mechanics Name OS Licence SyntaxAllegroPrologAllegro PrologUnix, Windows, Mac OS X (limited free edition available), via Lisp, via Lisp, via Lisp, via LispS-expressions. Full Common Lisp integration.BPrologUnix, Windows, Mac OS X (free for non-commercial uses)ISO-Prolog, plus event-handling, CLP(FD), and tablingCiaoUnix, Windows, Mac OS XISO-Prolog, plus extensionsDOS-PrologMS-DOSEdinburgh PrologECLiPSeLinux, Windows, Solaris, macOSExtended Prolog, Multi-dialect, including ISOGNU PrologUnix, Windows, Mac OS XISO-PrologJIPrologJIPrologJVM, Android via Java via JavaISO-PrologJLogJVMISO-PrologJScriptLogWeb BrowserISO-PrologjTrologJVMISO-PrologWIN-PrologWindowsEdinburgh Prolog with extensionsOpen PrologOpen Prolog Home PageMac OS System 7Poplog PrologLinux (32- and 64-bit), Unix, Windows Only through POP-11, on LinuxEdinburgh Prolog, with interfaces to Poplog Common Lisp and Pop-11Scryer PrologScryer PrologLinux, Windows, macOSISO-PrologSICStus PrologUnix, Linux, Windows, macOSISO-PrologStrawberry PrologStrawberry PrologUnix, WindowsNot ISO-Prolog + extensionsSWI-PrologUnix, Linux, Windows, macOSISO-Prolog, Edinburgh PrologtuPrologtuPrologJVM, AndroidISO-PrologVisual PrologWindowsXSB PrologLinux, Windows, Solaris, macOSISO-Prolog, tabled WFSYAP-PrologLinux, Windows, Solaris, Mac OS X, HP-UXISO-Prolog, Edinburgh Prolog, Quintus and SICStus Prolog compatible

Operating system and web-related features OS-related Web-related Name Conditional compilation Sockets Multi-threading Tabling HTTP client HTTP server HTML Parser RDF Triple storeBProlog Ciao ECLiPSe GNU Prolog WIN-Prolog Scryer Prolog SICStus Prolog SWI-Prolog Visual Prolog XSB YAP-Prolog

Static analysis Name Type checker Determinacy checker Call-pattern checkerCiao GNU PrologSICStus Prolog SWI-Prolog Visual Prolog XSBYAP-Prolog

Optimizations Name Tail-Call Optimization Choice Point Elimination Environment Trimming Just-in-Time IndexingCiao ECLiPSe GNU Prolog SICStus Prolog SWI-Prolog Visual Prolog XSB YAP-Prolog

Release Name Version Date AllegroProlog1.1.22018-12-12BProlog8.12014-02-23JIProlog4.1.7.12021-08-26Ciao1.252025-06-21https://github.com/ciao-lang/ciaoDOS-Prolog8.0ECLiPSe7.12023-01-01GNU Prolog1.5.02023-02-21JLog1.3.62007-09-13JScriptLog0.7.5 beta2007-09-10jTrologWIN-Prolog8.02022-07-14Open PrologPoplog PrologV162020-01-06Scryer Prolog0.10.02025-09-27https://github.com/mthom/scryer-prologSICStus Prolog4.9.02023-12-18Strawberry Prolog6.1 2023-08-23SWI-Prolog9.3.282025-08-08https://github.com/SWI-Prolog/swipl-devel/tagstuProlog2P-Kt 1.0.42024-05-26https://github.com/tuProlog/2p-kt/releasesVisual Prolog10, Build 10002021-04-15XSB Prolog5.02022-05-15YAProlog7.1.02020-12-19

Benchmarks Benchmarking issues: Odd Prolog benchmarking, Performance differences.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) Benchmarking software: older, Dobry's Benchmarks, Aquarius benchmark suite, (Bothe, 1990), (Demoen et al. 2001), benchmark descriptions Benchmarking results: B-Prolog, SICStus, XSB,A Summary of XSB Performance (1993) SICStus vs Yap vs Benchmarking results: Survey of java prolog engines by Michael Zeising Benchmarking results: OpenRuleBench yearly open-source benchmark of rule engines

Notes

References

External links Overview of Prolog Systems by Ulrich Neumerkel Conformity assessment I: Syntax