Jämförelse av Prolog-implementationer

Följande jämförelse av Prolog-implementationer ger en referens för de relativa funktionsuppsättningarna och prestandan för olika implementeringar av Prologs datorprogrammeringsspråk .

Bärbarhet

Det finns Prolog- implementationer som är radikalt olika, med olika syntax och olika semantik (t.ex. Visual Prolog) och sub-communities har utvecklats kring olika implementeringar.

Kod som strikt överensstämmer med ISO-Prologs kärnspråk är portabel över ISO-kompatibla implementeringar. ISO-standarden för moduler accepterades dock aldrig av de flesta Prolog-implementatorer.

Faktorer som kan påverka portabiliteten negativt inkluderar: användning av aritmetik med begränsat eller obegränsat heltal, ytterligare typer som strängobjekt, avancerade numeriska typer (rationella, komplexa), funktionstillägg som Unicode , trådar och tabeller . Användning av bibliotek som inte är tillgängliga i andra implementeringar och biblioteksorganisation:

För närvarande skiljer sig hur predikat sprids över biblioteken och systeminbyggda system enormt. [...] Lyckligtvis finns det bara ett fåtal fall där vi hittar predikat med samma namn men olika semantik (t.ex. delete/3 )

Huvuddrag

Plattform Funktioner Verktygslåda Prolog Mekanik
namn OS Licens Inbyggd grafik Sammanställd kod Unicode Objektorienterad Native OS Control Fristående körbar C Gränssnitt Java-gränssnitt Interaktiv tolk Debugger Kodprofilerare Syntax
AllegroProlog Unix , Windows , Mac OS X Kommersiell, begränsad gratis upplaga tillgänglig Ja Ja Ja Ja, via Lisp Ja Ja, via Lisp Ja, via Lisp Ja Ja Ja, via Lisp S-uttryck. Fullständig Common Lisp-integration.
BProlog Unix , Windows , Mac OS X Gratis för icke-kommersiellt bruk Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja ISO-Prolog, plus händelsehantering, CLP(FD) och tabeller
Ciao Unix , Windows , Mac OS X GPL , LGPL Ja Ja Ja Ja Ja Ja Ja Ja Ja ISO-Prolog, plus tillägg
DOS-PROLOG MS-DOS Kommersiell Ja Ja Ja Ja Ja Ja Edinburgh Prolog
Förmörkelse Linux , Windows , Solaris , macOS MPL Ja Ja Ja Ja Ja Ja Ja Utökad prolog, multidialekt, inklusive ISO
GNU Prolog Unix , Windows , Mac OS X GPL , LGPL Ja Ja Ja Ja Ja Ja ISO-Prolog
JIProlog JVM , Android Shareware /Commercial och AGPL Ja Ja Ja via Java Ja Ja via Java Ja Ja Ja ISO-Prolog
JLog JVM GPL Ja Ja Ja Ja ISO-Prolog
JScriptLog Webbläsare GPL Ja ISO-Prolog
jTrolog JVM LGPL Ja Ja Ja Ja ISO-Prolog tester [ permanent död länk ]
LPA-PROLOG Windows Kommersiell Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Edinburgh Prolog med tillägg
Öppna Prolog Mac OS Gratisprogram Ja
Poplog Prolog Linux (32- och 64-bitars), Unix , Windows Gratis öppen källkod Endast via POP-11 , på Linux Ja Ja Ja Ja Ja Ja Edinburgh Prolog, med gränssnitt till Poplog Common Lisp och Pop-11
Scryer Prolog Linux , Windows , macOS BSD-licens Ja Ja ISO-Prolog
SICStus Prolog Unix , Linux , Windows , macOS Kommersiell Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja ISO-Prolog
Strawberry Prolog Windows , Unix Gratisprogram , kommersiellt Ja Ja Ja Ja Ja Inte ISO-Prolog + tillägg
SWI-Prolog Unix , Linux , Windows , macOS BSD-licens Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja ISO-Prolog, Edinburgh Prolog
tuProlog JVM , Android LGPL Ja Ja Ja Ja Ja Ja ISO-Prolog
Visuell prolog Windows Gratisprogram , kommersiellt Ja Ja Ja Ja Ja Ja Ja Ja Ja
XSB Prolog Linux , Windows , Solaris , macOS LGPL Ja Ja Ja Ja Ja Ja Ja Ja Ja ISO-Prolog, framlagt WFS
YAP-Prolog Linux , Windows , Solaris , Mac OS X , HP-UX GPL eller Artistic (användarval) Ja Ja Ja Ja Ja Ja Ja Ja Edinburgh, ISO-Prolog, Quintus och SICStus Prolog kompatibla

Operativsystem och webbrelaterade funktioner

Webrelaterad
namn Villkorlig sammanställning Uttag Flertrådig Bordläggning HTTP-klient HTTP-server HTML Parser RDF Trippelbutik
BProlog Ja
Ciao Ja Ja Ja Ja Ja Ja Ja
Förmörkelse Ja Ja Ja Ja Ja
GNU Prolog Ja
LPA-Prolog Ja Ja Ja Ja
Scryer Prolog Ja Ja Ja Ja Ja
SICStus Prolog Ja Ja Ja
SWI-Prolog Ja Ja Ja Ja Ja Ja Ja Ja
Visuell prolog Ja Ja Ja Ja Ja Ja
XSB Ja Ja Ja Ja Ja
YAP-Prolog Ja Ja Ja Ja

Statisk analys

namn Skriv checker Beslutsamhetskontroll Samtalsmönsterkontroll
Ciao Ja Ja Ja
GNU Prolog
SICStus Prolog Ja
SWI-Prolog Ja
Visuell prolog Ja Ja Ja
XSB
YAP-Prolog

Optimeringar

namn Tail-Call Optimering Eliminering av valpoäng Miljötrimning Just-in-Time-indexering
Ciao Ja Ja Ja ?
Förmörkelse Ja Ja Ja multi-argument (kompileringstid)
GNU Prolog Ja Ja Ja ?
SICStus Prolog Ja Ja Ja
SWI-Prolog Ja Ja Ja Ja
Visuell prolog Ja (kompileringstid) Ja (kompileringstid) N/A (kompileringstid)
XSB Ja Ja Ja ?
YAP-Prolog Ja Ja Ja Ja

Släpp

namn Version Datum
AllegroProlog 1.1.2 2018-12-12
BProlog 8.1 2014-02-23
JIProlog 4.1.6.1 2018-03-17
Ciao 1.20.0 2021-03-31
DOS-PROLOG 8,0
Förmörkelse 7.0_54 2020-02-26
GNU Prolog 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
Öppna Prolog
Poplog Prolog V15.65 2015-10-14
Scryer Prolog 0.9.1 2022-11-13
SICStus Prolog 4.7.0 2021-08-09
Strawberry Prolog 3.0 Beta 4 2013-12-10
SWI-Prolog 8.4.1 2021-11-16
tuProlog 3.2.1 2017-02-14
Visuell prolog 10, bygg 1000 2021-04-15
XSB Prolog 4.0 2021-04-01
YAProlog 6.3.3 2013-01-21

Riktmärken

externa länkar