Jump to content

Prolog: Difference between revisions

From EDM2
Ak120 (talk | contribs)
 
(25 intermediate revisions by 2 users not shown)
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, derivatives 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.
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.


==A list of OS/2 implementations of Prolog==
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==
[[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]]
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.
 
==Implementations==
===OS/2===
<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
Commercial:
*[[Az-Prolog]] - Commercial - Discontinued
*[[Arity Prolog]]
*[[IBM PROLOG for OS/2]] - 16 bit only - Commercial - Discontinued
*[[Az-Prolog]]
*[[IBM SAA AD/Cycle Prolog/2]] - Commercial - Discontinued
*[[IBM PROLOG for OS/2]] - 16-bit only
*[[PDC Prolog]]- Commercial - Discontinued
*[[IBM SAA AD/Cycle Prolog/2]]
*[[PMPro Prolog]] - Commercial - Discontinued
*ORISAbase, ORISAentry, ORISApro (ORISA Software GmbH)
*[[Prolog II+]] - Commercial - Discontinued
*[[PDC Prolog]]
*[[Quintus Prolog]] - Commercial - Discontinued
*[[PMPro Prolog]]
*[[SICStus Prolog]] - Commercial - Discontinued
*[[Prolog II+]]
*[[SWI-Prolog]] - Open Source - Discontinued
*[[Quintus Prolog]]
*VMV Prolog (Automata Design Associates) - Commercial - Discontinued
*[[SICStus Prolog]]
*[[Visual Prolog]] - Commercial - Discontinued
*VMV Prolog (Automata Design Associates)
*[[Visual Prolog]]
*XPRO (Rational Vision)
Open Source:
*[[SWI-Prolog]]
</div>
</div>
====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
====Foreign libraries with Prolog bindings====
* [[Cairo]] - 2D graphics library - Open source - Current


====OS/2 text & programmers editors with Prolog support====
;Prolog libraries
* [[jEdit]] - Java based editor - Prolog syntax highlighting built in - Current.
* [http://prolog-commons.org/PrologCommons.html/PrologCommons.html The Prolog Commons] - Not all library functions are germane to OS/2 - Open source


==A list of DOS implementations of Prolog==
===DOS===
[[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
''Open Source''
* [[Amzi! Prolog+Logic Server]] - Commercial - Discontinued
*[[ALS Prolog]]
* [[Aquarius Prolog]] - Open/Closed source - Discontinued
*[[Aquarius Prolog]]
* [[Arity Prolog]] - Commercial - Discontinued
*Beta-Prolog
* [[Az-Prolog]] - Commercial - Discontinued
*BinProlog
* [[Beta-Prolog]] - Open Source - Discontinued
*[https://github.com/Johnicholas/Hello-Github/tree/master/prolog-in-hundreds-of-loc/Boizumault Boizumault Prolog]
* [[BinProlog]] - Open source commercial software - Discontinued
*[[cu-Prolog]]
* [https://github.com/Johnicholas/Hello-Github/tree/master/prolog-in-hundreds-of-loc/Boizumault Boizumault Prolog] - Open Source - Discontinued
*Stony Brook Prolog - Aka SB-Prolog
* [[ESL Prolog-2]] - Commercial - Discontinued
''Commercial''
* Cogent Prolog Compiler - Commercial
*Amzi! Prolog+Logic Server
* [[cu-Prolog]] - Open Source - Discontinued
*[[Arity Prolog]]
* [[LPA Prolog]] - Commercial - Current
*[[Az-Prolog]]
* LPA [[micro-PROLOG]] - Commercial - Discontinued
*ESL Prolog-2
* Logicware [[MPROLOG]] - Commercial - Discontinued
*Cogent Prolog Compiler
* [[MR Prolog]]- Commercial - Discontinued
*IF/Prolog
* [[PDC Prolog]]- Commercial - Discontinued
*LPA Prolog
* [[Prolog II]]- Commercial - Discontinued
*LPA [[micro-PROLOG]]
* [[Prolog III]]- Commercial - Discontinued
*Logicware MPROLOG
* Chalcedony [[Prolog V]]/Prolog V-Plus - Commercial - Discontinued
*MR Prolog
* [[Prolog-86+]]- Commercial - Discontinued
*[[PDC Prolog]]
* [[PD Prolog]] (A.D.A. PD Prolog) - Freeware - Discontinued
*Prolog II
* [[Quintus Prolog]] - Commercial - Discontinued
*Prolog III
* [[SICStus Prolog]] - Commercial - Discontinued
*Chalcedony Prolog V/Prolog V-Plus
* [[Stony Brook Prolog]] - Aka SB-Prolog - Open source - Discontinued
*Prolog-86+
* [[Visual Prolog|Turbo Prolog]] - Commercial - Discontinued
*[[Quintus Prolog]]
* [[VML Prolog]]- Commercial - Discontinued
*[[SICStus Prolog]]
*SNI Prolog
*[[Visual Prolog|Turbo Prolog]]
*VML Prolog
''Freeware''
*PD Prolog (A.D.A. PD Prolog)
</div>
</div>


==A list of Prolog implementations that run under WinOS/2==
===Win-OS/2===
* [[ALS Prolog]] - Was 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


==A list of Prolog implementations that run under Java==
===Java===
<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
Commercial:
* DGKS Prolog - Discontinued
* [http://www.jekejeke.ch Jekejeke Prolog]
* [https://www.gnu.org/software/gnuprologjava/ GNU Prolog for Java] - Open Source - Current
* [http://www.jiprolog.com/ JIProlog]
* [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
Open Source:
* [http://www.jekejeke.ch Jekejeke Prolog] - Commercial - Current.
* [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
* [https://code.google.com/p/jinniprolog/ Jinni Prolog] - Open Source - Discontinued
* DGKS Prolog
* [http://www.jiprolog.com/ JIProlog] - Commercial - Current.
* [https://www.gnu.org/software/gnuprologjava/ GNU Prolog for Java]
* [http://sourceforge.net/projects/jlogic/ jLog] - Open Source - Current.
* [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
* [https://java.net/projects/jTrolog jTrolog] - Open Source - Current.
* [https://code.google.com/p/jinniprolog/ Jinni Prolog]
* [https://code.google.com/p/kernel-prolog/ Kernel Prolog] - Subset - Open Source - Discontinued
* [http://sourceforge.net/projects/jlogic/ jLog]
* [https://code.google.com/p/mandarax/ Mandarax] - Prolog variant, not fully compatible - Open Source - Current
* [https://java.net/projects/jTrolog jTrolog]
* [http://kaminari.istc.kobe-u.ac.jp/PrologCafe/ Prolog Café] - Interpreter and translator - Open Source - Discontinued
* [https://code.google.com/p/kernel-prolog/ Kernel Prolog] - Subset
* [https://prova.ws/ Prova] - Prolog variant, not fully compatible - Open Source - Current
* [https://code.google.com/p/mandarax/ Mandarax] - Prolog variant, not fully compatible
* [https://code.google.com/p/styla/ Styla] - Requires [[Scala]] - Open Source - Current
* Prolog Café - Interpreter and translator
* [http://alice.unibo.it/xwiki/bin/view/Tuprolog/ tuProlog] - Open Source - Current
* [https://prova.ws/ Prova] - Prolog variant, not fully compatible
* [http://waitaki.otago.ac.nz/~michael/wp/ W-Prolog] - Open Source - Discontinued
* [https://code.google.com/p/styla/ Styla] - Requires [[Scala]]
* [http://alice.unibo.it/xwiki/bin/view/Tuprolog/ tuProlog]
* [http://waitaki.otago.ac.nz/~michael/wp/ W-Prolog]
</div>
</div>
====Utilities====
* [https://github.com/espakm/prolog4j Prolog4J] -Allows java programs to use native Prolog engines - Open Source - Discontinued


==A list of Prolog implementations in JavaScript==
;Utilities
* [http://ioctl.org/logic/prolog1 Prolog in JavaScript] - Note sub-set, split into a few pages - Open Source - Current.
* [https://github.com/espakm/prolog4j Prolog4J] - Allows Java programs to use native Prolog engines - Open Source
* [http://yieldprolog.sourceforge.net/ Yield Prolog] - Sub-set - Open Source - Discontinued.
 
===JavaScript===
* [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


==Publications==
==Publications==
* Patrice Boizumault: Prolog: l'implantation - 1988 - ISBN 2225814791 - Out of print.
*J.A. Campbell: ''Implementations of Prolog'' - Halsted Press 1984, ISBN 0-85312-675-5
*Patrice Boizumault: [http://press.princeton.edu/titles/5264.html The Implementation of Prolog]- Tranlated by Ara M. Djamboulian and Jamal Fattouh - 1993/2014 - ISBN 9780691609393 - In print.
*Feliks Kluźniak; Stanisław Szpakowicz: ''Prolog for Programmers'' - Academic Press 1987, ISBN 0-12-416521-4 [http://www.eecs.uottawa.ca/~szpak/pub/P4P/Prolog_for_Programmers_neat.pdf]
;Introductionary material
*Leon Sterling; Ehud Shapiro: ''The Art of Prolog'' - MIT Press 1994, ISBN 0-262-19338-8
* ''Peter Skye'': [http://www.scoug.com/reports/ws98_bourassa.html Logic Programming In Native OS/2]
*Michael Spivey: ''An Introduction to Logic Programming through Prolog'' - Prentice-Hall 1996, ISBN 0-13-536047-1
*Patrice Boizumault: [http://press.princeton.edu/titles/5264.html The Implementation of Prolog]- Translated by Ara M. Djamboulian and Jamal Fattouh - 1993/2014, ISBN 0-691-60939-X
* Fernando C. N. Pereira; Stuart M. Shieber: [http://www.mtome.com/Publications/PNLA/prolog-digital.pdf Prolog and Natural-Language Analysis]
*Michael A. Covington; Donald Nute; André Vellino: ''Prolog Programming in Depth'' (Second edition) - Prentice-Hall 1997, ISBN 0-13-138645-X


====Tutorials and other learning material====
;Papers
* http://www.learnprolognow.org/ Learn Prolog Now!]
 
====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
* David H. D. Warren: [https://www.sri.com/sites/default/files/uploads/publications/pdf/656.pdf Applied Logic - Its use and implementation as a programming tool]
* David H. D. Warren: [https://www.sri.com/sites/default/files/uploads/publications/pdf/656.pdf Applied Logic - Its use and implementation as a programming tool]


==Links==
==Links==
* [http://alain.colmerauer.free.fr/ Alain Colmerauer's homepage] - Has a cache of historical papers releated to Prolog
* [http://alain.colmerauer.free.fr/ Alain Colmerauer's homepage] - Has a cache of historical papers related to Prolog
* [https://github.com/Johnicholas/Hello-Github/tree/master/prolog-in-hundreds-of-loc/Boizumault Boizumault Prolog Archive on Github] - Contains the example Prolog implementations from his book (above)
* [https://github.com/Johnicholas/Hello-Github/tree/master/prolog-in-hundreds-of-loc/Boizumault Boizumault Prolog Archive on Github] - Contains the example Prolog implementations from his book (above)
* [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]


====USENET====
* ''Peter Skye'': [http://www.scoug.com/reports/ws98_bourassa.html Logic Programming In Native OS/2]
* [news:comp.lang.prolog comp.lang.prolog] - Go to the [https://groups.google.com/forum/#!forum/comp.lang.prolog Google groups version] if you are in any way newsgroup challenged.
* [http://www.learnprolognow.org/ Learn Prolog Now!] - Tutorial
 
* USENET: [news:comp.lang.prolog comp.lang.prolog]
==Standards==
* [http://fsl.cs.illinois.edu/images/9/9c/PrologStandard.pdf A summary of the 1993 ISO Prolog draft]
 
==Prolog 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]].


[[Category:Programming Languages]] [[Category:Prolog]]
[[Category:Programming Languages]][[Category:Prolog]]

Latest revision as of 01:28, 9 August 2024

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

Alain Colmerauer is the co-inventor of Prolog and the man behind the development of Prolog II, II+, III & IV

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.

Implementations

OS/2

Commercial:

Open Source:

Prolog libraries

DOS

Open Source

Commercial

Freeware

  • PD Prolog (A.D.A. PD Prolog)

Win-OS/2

  • 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

Commercial:

Open Source:

Utilities
  • Prolog4J - Allows Java programs to use native Prolog engines - Open Source

JavaScript

Publications

  • J.A. Campbell: Implementations of Prolog - Halsted Press 1984, ISBN 0-85312-675-5
  • Feliks Kluźniak; Stanisław Szpakowicz: Prolog for Programmers - Academic Press 1987, ISBN 0-12-416521-4 [1]
  • Leon Sterling; Ehud Shapiro: The Art of Prolog - MIT Press 1994, ISBN 0-262-19338-8
  • Michael Spivey: An Introduction to Logic Programming through Prolog - Prentice-Hall 1996, ISBN 0-13-536047-1
  • Patrice Boizumault: The Implementation of Prolog- Translated by Ara M. Djamboulian and Jamal Fattouh - 1993/2014, ISBN 0-691-60939-X
  • Fernando C. N. Pereira; Stuart M. Shieber: Prolog and Natural-Language Analysis
  • Michael A. Covington; Donald Nute; André Vellino: Prolog Programming in Depth (Second edition) - Prentice-Hall 1997, ISBN 0-13-138645-X
Papers

Links