Porównanie implementacji Prologu

Poniższe porównanie implementacji Prologu zawiera odniesienia do względnych zestawów funkcji i wydajności różnych implementacji języka programowania komputerów Prolog .

Ruchliwość

Istnieją implementacje Prologu , które są radykalnie różne, mają inną składnię i semantykę (np. Visual Prolog), a wokół różnych implementacji rozwinęły się społeczności podrzędne.

Kod, który jest ściśle zgodny z podstawowym językiem ISO-Prolog, można przenosić między implementacjami zgodnymi z ISO. Jednak standard ISO dla modułów nigdy nie został zaakceptowany przez większość implementatorów Prologu.

Czynniki, które mogą niekorzystnie wpłynąć na przenośność, obejmują: użycie ograniczonej i nieograniczonej arytmetyki liczb całkowitych, dodatkowe typy, takie jak obiekty łańcuchowe, zaawansowane typy liczbowe (wymierne, złożone), rozszerzenia funkcji, takie jak Unicode , wątki i tworzenie tabel. Korzystanie z bibliotek niedostępnych w innych wdrożeniach i organizacji bibliotek:

Obecnie sposób, w jaki predykaty są rozłożone w bibliotekach i wbudowanych systemach, jest bardzo różny. [...] Na szczęście jest tylko kilka przypadków, w których znajdujemy predykaty o tej samej nazwie, ale różnej semantyce (np. delete/3 )

Główne cechy

Platforma Cechy zestaw narzędzi Mechanika Prologu
Nazwa system operacyjny Licencja Natywna grafika Skompilowany kod Unikod Zorientowany obiektowo Natywna kontrola systemu operacyjnego Samodzielny plik wykonywalny Interfejs C Interfejs Javy Interaktywny tłumacz Debuger Profiler kodu Składnia
AllegroProlog Unix , Windows , Mac OS X Dostępna jest komercyjna, limitowana bezpłatna edycja Tak Tak Tak Tak, przez Lispa Tak Tak, przez Lispa Tak, przez Lispa Tak Tak Tak, przez Lispa S-wyrażenia. Pełna integracja z Common Lispem.
BProlog Unix , Windows , Mac OS X Bezpłatnie do zastosowań niekomercyjnych Tak Tak Tak Tak Tak Tak Tak Tak Tak Tak ISO-Prolog plus obsługa zdarzeń, CLP(FD) i tworzenie tabel
cześć Unix , Windows , Mac OS X GPL , LGPL Tak Tak Tak Tak Tak Tak Tak Tak Tak ISO-Prolog plus rozszerzenia
DOS-PROLOG MS-DOS Handlowy Tak Tak Tak Tak Tak Tak Prolog z Edynburga
Zaćmienie Linux , Windows , Solaris , macOS MPL Tak Tak Tak Tak Tak Tak Tak Rozszerzony Prolog, wielodialekt, w tym ISO
Prolog GNU Unix , Windows , Mac OS X GPL , LGPL Tak Tak Tak Tak Tak Tak ISO-Prolog
JIProlog JVM , Android Shareware /Commercial i AGPL Tak Tak Tak przez Javę Tak Tak przez Javę Tak Tak Tak ISO-Prolog
JLog JVM GPL Tak Tak Tak Tak ISO-Prolog
JScriptLog Przeglądarka internetowa GPL Tak ISO-Prolog
jTrolog JVM LGPL Tak Tak Tak Tak Testy ISO-Prolog [ stały martwy link ]
LPA-PROLOG Okna Handlowy Tak Tak Tak Tak Tak Tak Tak Tak Tak Tak Tak Edynburg Prolog z rozszerzeniami
Otwórz Prolog System operacyjny Mac Darmowe Tak
Poplog Prolog Linux (32- i 64-bitowy), Unix , Windows Darmowe oprogramowanie typu open source Tylko przez POP-11 w systemie Linux Tak Tak Tak Tak Tak Tak Edinburgh Prolog, z interfejsami do Poplog Common Lisp i Pop-11
Prolog Scryera Linux , Windows , macOS Licencja BSD Tak Tak ISO-Prolog
SICStus Prolog Unix , Linux , Windows , macOS Handlowy Tak Tak Tak Tak Tak Tak Tak Tak Tak Tak Tak ISO-Prolog
Truskawkowy prolog Windowsa , Uniksa Darmowy , komercyjny Tak Tak Tak Tak Tak Nie ISO-Prolog + rozszerzenia
SWI-Prolog Unix , Linux , Windows , macOS Licencja BSD Tak Tak Tak Tak Tak Tak Tak Tak Tak Tak ISO-Prolog, Edynburg Prolog
tuProlog JVM , Android LGPL Tak Tak Tak Tak Tak Tak ISO-Prolog
Prolog wizualny Okna Darmowy , komercyjny Tak Tak Tak Tak Tak Tak Tak Tak Tak
Prolog XSB Linux , Windows , Solaris , macOS LGPL Tak Tak Tak Tak Tak Tak Tak Tak Tak ISO-Prolog, tabela WFS
YAP-Prolog Linux , Windows , Solaris , Mac OS X , HP-UX GPL lub Artystyczne (wybór użytkownika) Tak Tak Tak Tak Tak Tak Tak Tak Zgodność z Edynburgiem, ISO-Prolog, Quintus i SICStus Prolog

System operacyjny i funkcje związane z Internetem

Związane z siecią
Nazwa Kompilacja warunkowa Gniazda Wielowątkowość Obstawianie Klient HTTP Serwer HTTP Parser HTML Potrójny sklep RDF
BProlog Tak
cześć Tak Tak Tak Tak Tak Tak Tak
Zaćmienie Tak Tak Tak Tak Tak
Prolog GNU Tak
LPA-Prolog Tak Tak Tak Tak
Prolog Scryera Tak Tak Tak Tak Tak
SICStus Prolog Tak Tak Tak
SWI-Prolog Tak Tak Tak Tak Tak Tak Tak Tak
Prolog wizualny Tak Tak Tak Tak Tak Tak
XSB Tak Tak Tak Tak Tak
YAP-Prolog Tak Tak Tak Tak

Analiza statyczna

Nazwa Sprawdzanie typów Kontroler determinacji Sprawdzanie wzorców połączeń
cześć Tak Tak Tak
Prolog GNU
SICStus Prolog Tak
SWI-Prolog Tak
Prolog wizualny Tak Tak Tak
Prolog
XSB YAP

optymalizacje

Nazwa Optymalizacja połączeń ogonowych Eliminacja punktu wyboru Przycinanie środowiska Indeksowanie na czas
cześć Tak Tak Tak ?
Zaćmienie Tak Tak Tak wieloargumentowy (czas kompilacji)
Prolog GNU Tak Tak Tak ?
SICStus Prolog Tak Tak Tak
SWI-Prolog Tak Tak Tak Tak
Prolog wizualny Tak (czas kompilacji) Tak (czas kompilacji) Nie dotyczy (czas kompilacji)
XSB Tak Tak Tak ?
YAP-Prolog Tak Tak Tak Tak

Uwolnienie

Nazwa Wersja Data
AllegroProlog 1.1.2 2018-12-12
BProlog 8.1 2014-02-23
JIProlog 4.1.6.1 2018-03-17
cześć 1.20.0 2021-03-31
DOS-PROLOG 8.0
Zaćmienie 7.0_54 2020-02-26
Prolog GNU 1.4.5 2018-07-14
JLog 1.3.6 2007-09-13
JScriptLog 0,7,5 beta 2007-09-10
jTrolog
LPA-PROLOG 8.0 2022-07-14
Otwórz Prolog
Poplog Prolog V15.65 2015-10-14
Prolog Scryera 0.9.1 2022-11-13
SICStus Prolog 4.7.0 2021-08-09
Truskawkowy prolog 3.0 Beta 4 2013-12-10
SWI-Prolog 8.4.1 2021-11-16
tuProlog 3.2.1 2017-02-14
Prolog wizualny 10, Zbuduj 1000 2021-04-15
Prolog XSB 4.0 2021-04-01
YAProlog 6.3.3 2013-01-21

Wzorce

Linki zewnętrzne