Comparação de implementações Prolog - Comparison of Prolog implementations

A seguinte comparação de implementações Prolog fornece uma referência para os conjuntos de recursos relativos e desempenho de diferentes implementações da linguagem de programação de computador Prolog .

Portabilidade

Existem implementações de Prolog que são radicalmente diferentes, com sintaxe e semântica diferentes (por exemplo, Visual Prolog) e subcomunidades foram desenvolvidas em torno de implementações diferentes.

O código que está estritamente em conformidade com a linguagem de núcleo ISO-Prolog é portável em implementações compatíveis com ISO. No entanto, o padrão ISO para módulos nunca foi aceito pela maioria dos implementadores do Prolog.

Os fatores que podem afetar negativamente a portabilidade incluem: uso de aritmética de número inteiro limitado vs. ilimitado, tipos adicionais como objetos de string, tipos numéricos avançados (racionais, complexos), extensões de recursos como Unicode , threads e tabulação. Uso de bibliotecas indisponíveis em outras implementações e organização de bibliotecas:

Atualmente, a maneira como os predicados são espalhados pelas bibliotecas e sistemas integrados difere enormemente. [...] Felizmente, existem apenas alguns casos em que encontramos predicados com o mesmo nome, mas semânticas diferentes (por exemplo delete/3)

Principais características

Plataforma Recursos Kit de ferramentas Prolog Mecânica
Nome SO Licença Gráficos Nativos Código Compilado Unicode Orientado a Objeto Controle de SO nativo Executável autônomo Interface C Interface Java Intérprete Interativo Depurador Code Profiler Sintaxe
AllegroProlog Unix , Windows , Mac OS X Comercial, edição gratuita limitada disponível sim sim sim Sim, via Lisp sim Sim, via Lisp Sim, via Lisp sim sim Sim, via Lisp Expressões S. Integração completa do Common Lisp.
BProlog Unix , Windows , Mac OS X Gratuito para usos não comerciais sim sim sim sim sim sim sim sim sim sim ISO-Prolog, além de manipulação de eventos, CLP (FD) e tabling
tchau Unix , Windows , Mac OS X GPL , LGPL sim sim sim sim sim sim sim sim sim ISO-Prolog, mais extensões
DOS-PROLOG MS-DOS Shareware sim sim sim sim sim sim Edimburgo Prolog
Eclipse Linux , Windows , Solaris , macOS MPL sim sim sim sim sim sim sim Prolog estendido, multi-dialeto, incluindo ISO
GNU Prolog Unix , Windows , Mac OS X GPL , LGPL sim sim sim sim sim sim ISO-Prolog
JIProlog JVM , Android Shareware / Comercial e AGPL sim sim Sim via Java sim Sim via Java sim sim sim ISO-Prolog
JLog JVM GPL sim sim sim sim ISO-Prolog
JScriptLog Navegador da web GPL sim ISO-Prolog
jTrolog JVM LGPL sim sim sim sim Testes ISO-Prolog
LPA-PROLOG janelas Comercial sim sim sim sim sim sim sim sim sim sim sim Prolog de Edimburgo com extensões
Open Prolog Mac OS freeware sim
Poplog Prolog Linux (32 e 64 bits), Unix , Windows Código aberto grátis Somente através do POP-11 , no Linux sim sim sim sim sim sim Edinburgh Prolog, com interfaces para Poplog Common Lisp e Pop-11
SICStus Prolog Unix , Linux , Windows , macOS Comercial sim sim sim sim sim sim sim sim sim sim sim ISO-Prolog
Prolog de morango Windows , Unix Freeware , comercial sim sim sim sim sim Extensões não ISO-Prolog +
SWI-Prolog Unix , Linux , Windows , macOS Licença BSD sim sim sim sim sim sim sim sim sim sim ISO-Prolog, Edinburgh Prolog
tuProlog JVM , Android LGPL sim sim sim sim sim sim ISO-Prolog
Visual Prolog janelas Freeware , comercial sim sim sim sim sim sim sim sim sim
XSB Prolog Linux , Windows , Solaris , macOS LGPL sim sim sim sim sim sim sim sim sim ISO-Prolog, WFS tabelado
YAP-Prolog Linux , Windows , Solaris , Mac OS X , HP-UX GPL ou Artístico (escolha do usuário) sim sim sim sim sim sim sim sim Edimburgo, ISO-Prolog, Quintus e SICStus Prolog compatível

Sistema operacional e recursos relacionados à Web

Relacionado à web
Nome Compilação condicional tomadas Multi-threading Tabela Cliente HTTP Servidor HTTP Analisador de HTML RDF Triple store
BProlog sim
tchau sim sim sim sim sim sim sim
Eclipse sim sim sim sim sim
GNU Prolog sim
LPA-Prolog sim sim sim sim
SICStus Prolog sim sim sim
SWI-Prolog sim sim sim sim sim sim sim sim
Visual Prolog sim sim sim sim sim sim
XSB sim sim sim sim sim
YAP-Prolog sim sim sim sim

Análise estática

Nome Verificador de tipo Verificador de determinação Verificador de padrões de chamada
tchau sim sim sim
GNU Prolog
SICStus Prolog sim
SWI-Prolog sim
Visual Prolog sim sim sim
XSB
YAP-Prolog

Otimizações

Nome Otimização Tail-Call Eliminação de ponto de escolha Corte de ambiente Indexação Just-in-Time
tchau sim sim sim ?
Eclipse sim sim sim multi-argumento (tempo de compilação)
GNU Prolog sim sim sim ?
SICStus Prolog sim sim sim
SWI-Prolog sim sim sim sim
Visual Prolog Sim (tempo de compilação) Sim (tempo de compilação) N / D N / A (tempo de compilação)
XSB sim sim sim ?
YAP-Prolog sim sim sim sim

Liberar

Nome Versão Encontro
AllegroProlog 1.1.2 1018-12-12
BProlog 8,1 23/02/2014
JIProlog 4.1.6.1 17/03/2018
tchau 1.20.0 31/03/2021
DOS-PROLOG 6,0
Eclipse 7.0_54 26-02-2020
GNU Prolog 1.4.5 14/07/2018
JLog 1.3.6 13/09/2007
JScriptLog 0.7.5 beta 10/09/2007
jTrolog
LPA-PROLOG 7,0 19/12/2019
Open Prolog
Poplog Prolog V15.65 14/10/2015
SICStus Prolog 4.6.0 04-05-2020
Prolog de morango 3.0 Beta 4 10/12/2013
SWI-Prolog 8.2.4 2021-01-27
tuProlog 3.2.1 14/02/2017
Visual Prolog 10, Build 1000 2021-04-15
XSB Prolog 3,8 29/10/2017
YAProlog 6.3.3 21/01/2013

Benchmarks

Referências

links externos