Top Qs
Timeline
Chat
Perspective

Comparison of Prolog implementations

From Wikipedia, the free encyclopedia

Comparison of Prolog implementations
Remove ads

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).[1]

Thumb
Timeline of some early Prolog systems, up to the ISO Standard
Remove ads

Portability

Summarize
Perspective
Thumb
Prolog Heritage.
Systems with a dark gray background are not supported any more. Arrows denote influences and inspiration of systems. Quick legend: JIT = "Just in Time Compiler", JVM = "Java Virtual Machine", TOAM = "Tree-Oriented Abstract Machine"

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

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.[2][1]

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.[3] Use of libraries unavailable in other implementations and library organisation:[2]

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)

Remove ads

Main features

More information Platform, Features ...
Remove ads
More information OS-related, Web-related ...
Remove ads

Static analysis

More information Name, Type checker ...
Remove ads

Optimizations

More information Name, Tail-Call Optimization ...
Remove ads

Release

More information Name, Version ...
Remove ads

Benchmarks

Remove ads

Notes

  1. C/Java interface can also be used for graphics and OS control.

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads