Jump to content

Prolog: Difference between revisions

From EDM2
Ak120 (talk | contribs)
Ak120 (talk | contribs)
mNo edit summary
Line 1: Line 1:
[[Image:GottlobFrege.jpg|[http://plato.stanford.edu/entries/frege/ Gottlob Frege] (1848 ~ 1925)<br>Friedrich Ludwig Gottlob Frege invented predicate logic on which Prolog is based|thumb|right]]
[[Image:GottlobFrege.jpg|[http://plato.stanford.edu/entries/frege/ Gottlob Frege] (1848 ~ 1925)<br>Friedrich Ludwig Gottlob Frege invented predicate logic on which Prolog is based|thumb|right]]
Declarative logic programming language developed in France in the latter half of the 1960's and early 70, name is a shortening of "PROgrammation en
Declarative logic programming language developed in France in the latter half of the 1960s and early 1970s, name is a shortening of "PROgrammation en
LOGique" or "Programming in Logic". Unique syntax gives the impression that it is difficult to learn but in actuality it is not more of an effort to learn it any of the classic languages, but programmers used to procedural languages sometimes difficulty getting their heads around the different programming paradigms Prolog has to offer than rank beginner do.
LOGique" or "Programming in Logic". Unique syntax gives the impression that it is difficult to learn but in actuality it is not more of an effort to learn it any of the classic languages, but programmers used to procedural languages sometimes difficulty getting their heads around the different programming paradigms Prolog has to offer than rank beginner do.


Line 10: Line 10:
==OS/2 implementations==
==OS/2 implementations==
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
*[[Arity Prolog]] - Commercial - Discontinued
*[[Arity Prolog]] - Commercial
*[[Az-Prolog]] - Commercial - Discontinued
*[[Az-Prolog]] - Commercial
*[[IBM PROLOG for OS/2]] - 16 bit only - Commercial - Discontinued
*[[IBM PROLOG for OS/2]] - 16 bit only - Commercial
*[[IBM SAA AD/Cycle Prolog/2]] - Commercial - Discontinued
*[[IBM SAA AD/Cycle Prolog/2]] - Commercial
*ORISApro (ORISA Software GmbH) - Commercial
*ORISApro (ORISA Software GmbH) - Commercial
*[[PDC Prolog]] - Commercial - Discontinued
*[[PDC Prolog]] - Commercial
*[[PMPro Prolog]] - Commercial - Discontinued
*[[PMPro Prolog]] - Commercial
*[[Prolog II+]] - Commercial - Discontinued
*[[Prolog II+]] - Commercial
*[[Quintus Prolog]] - Commercial - Discontinued
*[[Quintus Prolog]] - Commercial
*[[SICStus Prolog]] - Commercial - Discontinued
*[[SICStus Prolog]] - Commercial
*[[SWI-Prolog]] - Open Source - Discontinued
*[[SWI-Prolog]] - Open Source
*VMV Prolog (Automata Design Associates) - Commercial - Discontinued
*VMV Prolog (Automata Design Associates) - Commercial
*[[Visual Prolog]] - Commercial - Discontinued
*[[Visual Prolog]] - Commercial
*XPRO (Rational Vision) - Commercial
*XPRO (Rational Vision) - Commercial
</div>
</div>


===Prolog libraries===
===Prolog libraries===
* [http://prolog-commons.org/PrologCommons.html/PrologCommons.html The Prolog Commons] - Not all library functions are germane to OS/2 - Open source - Current
* [http://prolog-commons.org/PrologCommons.html/PrologCommons.html The Prolog Commons] - Not all library functions are germane to OS/2 - Open source


===Foreign libraries with Prolog bindings===
===Foreign libraries with Prolog bindings===
* [[Cairo]] - 2D graphics library - Open source - Current
* [[Cairo]] - 2D graphics library - Open source
 
===Text & programmers editors with Prolog support===
* [[jEdit]] - Java based editor - Prolog syntax highlighting built in - Current


==DOS Implementations==
==DOS Implementations==
[[Image:AlainColmerauer.jpg|right|thumb|[http://alain.colmerauer.free.fr/ Alain Colmerauer] is the co-inventor of Prolog and the man behind the development of Prolog II, II+, III & IV]]
[[Image:AlainColmerauer.jpg|right|thumb|[http://alain.colmerauer.free.fr/ Alain Colmerauer] is the co-inventor of Prolog and the man behind the development of Prolog II, II+, III & IV]]
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
* [[ALS Prolog]] - Was Commercial/now open source - Discontinued
* [[ALS Prolog]] - Was Commercial/now open source
*Amzi! Prolog+Logic Server - Commercial - Discontinued
*Amzi! Prolog+Logic Server - Commercial
* [[Aquarius Prolog]] - Open/Closed source - Discontinued
* [[Aquarius Prolog]] - Open/Closed source
* [[Arity Prolog]] - Commercial - Discontinued
* [[Arity Prolog]] - Commercial
* [[Az-Prolog]] - Commercial - Discontinued
* [[Az-Prolog]] - Commercial
*Beta-Prolog - Open Source - Discontinued
*Beta-Prolog - Open Source
*BinProlog - Open source commercial software - Discontinued
*BinProlog - Open source commercial software
* [https://github.com/Johnicholas/Hello-Github/tree/master/prolog-in-hundreds-of-loc/Boizumault Boizumault Prolog] - Open Source - Discontinued
* [https://github.com/Johnicholas/Hello-Github/tree/master/prolog-in-hundreds-of-loc/Boizumault Boizumault Prolog] - Open Source
*ESL Prolog-2 - Commercial - Discontinued
*ESL Prolog-2 - Commercial
*Cogent Prolog Compiler - Commercial  
*Cogent Prolog Compiler - Commercial  
*[[cu-Prolog]] - Open Source - Discontinued
*[[cu-Prolog]] - Open Source
*IF/Prolog - Commercial
*IF/Prolog - Commercial
*LPA Prolog - Commercial - Current
*LPA Prolog - Commercial
*LPA [[micro-PROLOG]] - Commercial - Discontinued
*LPA [[micro-PROLOG]] - Commercial
*Logicware MPROLOG - Commercial - Discontinued
*Logicware MPROLOG - Commercial
*MR Prolog - Commercial - Discontinued
*MR Prolog - Commercial
*[[PDC Prolog]] - Commercial - Discontinued
*[[PDC Prolog]] - Commercial
*Prolog II - Commercial - Discontinued
*Prolog II - Commercial
*Prolog III - Commercial - Discontinued
*Prolog III - Commercial
*Chalcedony Prolog V/Prolog V-Plus - Commercial - Discontinued
*Chalcedony Prolog V/Prolog V-Plus - Commercial
*Prolog-86+- Commercial - Discontinued
*Prolog-86+- Commercial
*PD Prolog (A.D.A. PD Prolog) - Freeware - Discontinued
*PD Prolog (A.D.A. PD Prolog) - Freeware
*[[Quintus Prolog]] - Commercial - Discontinued
*[[Quintus Prolog]] - Commercial
*[[SICStus Prolog]] - Commercial - Discontinued
*[[SICStus Prolog]] - Commercial
*SNI Prolog - Commercial
*SNI Prolog - Commercial
*Stony Brook Prolog - Aka SB-Prolog - Open source - Discontinued
*Stony Brook Prolog - Aka SB-Prolog - Open source
*[[Visual Prolog|Turbo Prolog]] - Commercial - Discontinued
*[[Visual Prolog|Turbo Prolog]] - Commercial
*VML Prolog - Commercial - Discontinued
*VML Prolog - Commercial
</div>
</div>


==Win-OS/2 Implementations==
==Win-OS/2 Implementations==
* [[ALS Prolog]] - former commercial/now open source - Discontinued
* [[ALS Prolog]] - former commercial/now open source
*Amzi! Logic Explorer - Freeware - Discontinued
*Amzi! Logic Explorer - Freeware
*Amzi! Prolog+Logic Server - Commercial - Discontinued
*Amzi! Prolog+Logic Server - Commercial
*[[Arity Prolog]] - Commercial - Discontinued
*[[Arity Prolog]] - Commercial
*IF/Prolog - Commercial - Discontinued - Contraint ver.
*IF/Prolog - Commercial - Discontinued - Contraint ver.
*LPA Prolog - Commercial - Discontinued - Versions up to 4.1 run with [[Win32s]]
*LPA Prolog - Commercial - Versions up to 4.1 run with [[Win32s]]
*Prolog IV - Commercial - Discontinued
*Prolog IV - Commercial
*[[Visual Prolog]] - Commercial - Discontinued
*[[Visual Prolog]] - Commercial


==Java Implementations==
==Java Implementations==
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
* [https://web.archive.org/web/20011006071211/http://www.students.cs.ruu.nl/people/smotterl/prolog/index.htm CKI-Prolog] - Old but works on Java 1.x on vintage hardware - Open Source - Discontinued
* [https://web.archive.org/web/20011006071211/http://www.students.cs.ruu.nl/people/smotterl/prolog/index.htm CKI-Prolog] - Old but works on Java 1.x on vintage hardware - Open Source
* DGKS Prolog - Discontinued
* DGKS Prolog
* [https://www.gnu.org/software/gnuprologjava/ GNU Prolog for Java] - Open Source - Current
* [https://www.gnu.org/software/gnuprologjava/ GNU Prolog for Java] - Open Source
* [https://web.archive.org/web/19990427194619/http://www.bird-land.com/java/prolog/index.html JavaLog] - Old but works on Java 1.x on vintage hardware - Open Source - Discontinued
* [https://web.archive.org/web/19990427194619/http://www.bird-land.com/java/prolog/index.html JavaLog] - Old but works on Java 1.x on vintage hardware - Open Source
* [http://www.jekejeke.ch Jekejeke Prolog] - Commercial - Current.
* [http://www.jekejeke.ch Jekejeke Prolog] - Commercial
* [https://code.google.com/p/jinniprolog/ Jinni Prolog] - Open Source - Discontinued
* [https://code.google.com/p/jinniprolog/ Jinni Prolog] - Open Source
* [http://www.jiprolog.com/ JIProlog] - Commercial - Current.
* [http://www.jiprolog.com/ JIProlog] - Commercial
* [http://sourceforge.net/projects/jlogic/ jLog] - Open Source - Current.
* [http://sourceforge.net/projects/jlogic/ jLog] - Open Source
* [https://java.net/projects/jTrolog jTrolog] - Open Source - Current.
* [https://java.net/projects/jTrolog jTrolog] - Open Source
* [https://code.google.com/p/kernel-prolog/ Kernel Prolog] - Subset - Open Source - Discontinued
* [https://code.google.com/p/kernel-prolog/ Kernel Prolog] - Subset - Open Source
* [https://code.google.com/p/mandarax/ Mandarax] - Prolog variant, not fully compatible - Open Source - Current
* [https://code.google.com/p/mandarax/ Mandarax] - Prolog variant, not fully compatible - Open Source
* [http://kaminari.istc.kobe-u.ac.jp/PrologCafe/ Prolog Café] - Interpreter and translator - Open Source - Discontinued
* [http://kaminari.istc.kobe-u.ac.jp/PrologCafe/ Prolog Café] - Interpreter and translator - Open Source
* [https://prova.ws/ Prova] - Prolog variant, not fully compatible - Open Source - Current
* [https://prova.ws/ Prova] - Prolog variant, not fully compatible - Open Source
* [https://code.google.com/p/styla/ Styla] - Requires [[Scala]] - Open Source - Current
* [https://code.google.com/p/styla/ Styla] - Requires [[Scala]] - Open Source
* [http://alice.unibo.it/xwiki/bin/view/Tuprolog/ tuProlog] - Open Source - Current
* [http://alice.unibo.it/xwiki/bin/view/Tuprolog/ tuProlog] - Open Source
* [http://waitaki.otago.ac.nz/~michael/wp/ W-Prolog] - Open Source - Discontinued
* [http://waitaki.otago.ac.nz/~michael/wp/ W-Prolog] - Open Source
</div>
</div>
===Utilities===
 
* [https://github.com/espakm/prolog4j Prolog4J] -Allows java programs to use native Prolog engines - Open Source - Discontinued
;Editor support
* [[jEdit]] - Java based editor - Prolog syntax highlighting built-in
;Utilities
* [https://github.com/espakm/prolog4j Prolog4J] - Allows Java programs to use native Prolog engines - Open Source


==Implementations in JavaScript==
==Implementations in JavaScript==
* [http://ioctl.org/logic/prolog1 Prolog in JavaScript] - Note sub-set, split into a few pages - Open Source - Current.
* [http://ioctl.org/logic/prolog1 Prolog in JavaScript] - Note sub-set, split into a few pages - Open Source
* [http://yieldprolog.sourceforge.net/ Yield Prolog] - Sub-set - Open Source - Discontinued.
* [http://yieldprolog.sourceforge.net/ Yield Prolog] - Sub-set - Open Source


==Publications==
==Publications==
Line 109: Line 109:
* Fernando C. N. Pereira; Stuart M. Shieber: [http://www.mtome.com/Publications/PNLA/prolog-digital.pdf Prolog and Natural-Language Analysis]
* Fernando C. N. Pereira; Stuart M. Shieber: [http://www.mtome.com/Publications/PNLA/prolog-digital.pdf Prolog and Natural-Language Analysis]
;Introductionary material
;Introductionary material
* ''Peter Skye'': [http://www.scoug.com/reports/ws98_bourassa.html Logic Programming In Native OS/2]
* http://www.learnprolognow.org/ Learn Prolog Now!] - Tutorial


===Papers===
;Papers
* Krzysztof R. Apt, Maurizio Gabbrielli and Dino Pedreschi [http://oai.cwi.nl/oai/asset/1397/1397A.pdf A closer look at declarative interpretations*]
* Krzysztof R. Apt, Maurizio Gabbrielli and Dino Pedreschi [http://oai.cwi.nl/oai/asset/1397/1397A.pdf A closer look at declarative interpretations*]
* [https://www.metalevel.at/tist/ Thinking in states] - Parsers & compilers
* [https://www.metalevel.at/tist/ Thinking in states] - Parsers & compilers
Line 122: Line 120:
* [https://dtai.cs.kuleuven.be/ppcbook/ The first 10 Prolog Programming Contests]
* [https://dtai.cs.kuleuven.be/ppcbook/ The first 10 Prolog Programming Contests]
* [https://dtai.cs.kuleuven.be/projects/ALP/newsletter/may05/nav/complang/nettalk.html Documenting large Prolog programs]
* [https://dtai.cs.kuleuven.be/projects/ALP/newsletter/may05/nav/complang/nettalk.html Documenting large Prolog programs]
* ''Peter Skye'': [http://www.scoug.com/reports/ws98_bourassa.html Logic Programming In Native OS/2]
* http://www.learnprolognow.org/ Learn Prolog Now!] - Tutorial


* USENET: [news:comp.lang.prolog comp.lang.prolog]
* USENET: [news:comp.lang.prolog comp.lang.prolog]

Revision as of 00:37, 2 March 2019

Gottlob Frege (1848 ~ 1925)
Friedrich Ludwig Gottlob Frege invented predicate logic on which Prolog is based

Declarative logic programming language developed in France in the latter half of the 1960s and early 1970s, name is a shortening of "PROgrammation en LOGique" or "Programming in Logic". Unique syntax gives the impression that it is difficult to learn but in actuality it is not more of an effort to learn it any of the classic languages, but programmers used to procedural languages sometimes difficulty getting their heads around the different programming paradigms Prolog has to offer than rank beginner do.

Derivatives of Prolog include primarily constraint logic programming languages such as Prolog IV and ECLiPSE but also hybrids such as the strongly typed Mercury and Visual Prolog and even more alien systems such as Erlang.

History

Invented in Marseilles, France in 1972 by Alain Colmerauer and Philippe Rousse, the system is a descendant of a natural language machine translation system called Q-systems that Colmerauer started developing in 1968, but prior and parallel to that he alongside Rousse and others connected to the birth of Prolog such as Jean Trudel and Robert Pasero had participated in the "Traduction Automatique de l’Université de Montréal" project in Canada. Initially implemented on an IBM System/360 using Wirth's ALGOL W and PL/360.

OS/2 implementations

Prolog libraries

Foreign libraries with Prolog bindings

  • Cairo - 2D graphics library - Open source

DOS Implementations

Alain Colmerauer is the co-inventor of Prolog and the man behind the development of Prolog II, II+, III & IV
  • ALS Prolog - Was Commercial/now open source
  • Amzi! Prolog+Logic Server - Commercial
  • Aquarius Prolog - Open/Closed source
  • Arity Prolog - Commercial
  • Az-Prolog - Commercial
  • Beta-Prolog - Open Source
  • BinProlog - Open source commercial software
  • Boizumault Prolog - Open Source
  • ESL Prolog-2 - Commercial
  • Cogent Prolog Compiler - Commercial
  • cu-Prolog - Open Source
  • IF/Prolog - Commercial
  • LPA Prolog - Commercial
  • LPA micro-PROLOG - Commercial
  • Logicware MPROLOG - Commercial
  • MR Prolog - Commercial
  • PDC Prolog - Commercial
  • Prolog II - Commercial
  • Prolog III - Commercial
  • Chalcedony Prolog V/Prolog V-Plus - Commercial
  • Prolog-86+- Commercial
  • PD Prolog (A.D.A. PD Prolog) - Freeware
  • Quintus Prolog - Commercial
  • SICStus Prolog - Commercial
  • SNI Prolog - Commercial
  • Stony Brook Prolog - Aka SB-Prolog - Open source
  • Turbo Prolog - Commercial
  • VML Prolog - Commercial

Win-OS/2 Implementations

  • ALS Prolog - former commercial/now open source
  • Amzi! Logic Explorer - Freeware
  • Amzi! Prolog+Logic Server - Commercial
  • Arity Prolog - Commercial
  • IF/Prolog - Commercial - Discontinued - Contraint ver.
  • LPA Prolog - Commercial - Versions up to 4.1 run with Win32s
  • Prolog IV - Commercial
  • Visual Prolog - Commercial

Java Implementations

Editor support
  • jEdit - Java based editor - Prolog syntax highlighting built-in
Utilities
  • Prolog4J - Allows Java programs to use native Prolog engines - Open Source

Implementations in JavaScript

Publications

Introductionary material
Papers

Links