Prolog: Difference between revisions
m →OS/2 |
|||
(6 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
==History== | ==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. | 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== | ||
===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"> | ||
Commercial: | Commercial: | ||
Line 15: | Line 17: | ||
*[[IBM PROLOG for OS/2]] - 16-bit only | *[[IBM PROLOG for OS/2]] - 16-bit only | ||
*[[IBM SAA AD/Cycle Prolog/2]] | *[[IBM SAA AD/Cycle Prolog/2]] | ||
*ORISApro (ORISA Software GmbH) | *ORISAbase, ORISAentry, ORISApro (ORISA Software GmbH) | ||
*[[PDC Prolog]] | *[[PDC Prolog]] | ||
*[[PMPro Prolog]] | *[[PMPro Prolog]] | ||
Line 28: | Line 30: | ||
</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 | * [http://prolog-commons.org/PrologCommons.html/PrologCommons.html The Prolog Commons] - Not all library functions are germane to OS/2 - Open source | ||
==DOS | ===DOS=== | ||
<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]] | ''Open Source'' | ||
*[[ALS Prolog]] | |||
* [[Aquarius Prolog]] | *[[Aquarius Prolog]] | ||
*Beta-Prolog | |||
*BinProlog | |||
*Beta-Prolog | *[https://github.com/Johnicholas/Hello-Github/tree/master/prolog-in-hundreds-of-loc/Boizumault Boizumault Prolog] | ||
*BinProlog | *[[cu-Prolog]] | ||
* [https://github.com/Johnicholas/Hello-Github/tree/master/prolog-in-hundreds-of-loc/Boizumault Boizumault Prolog] - | *Stony Brook Prolog - Aka SB-Prolog | ||
* | ''Commercial'' | ||
* | *Amzi! Prolog+Logic Server | ||
*[[ | *[[Arity Prolog]] | ||
*IF/Prolog | *[[Az-Prolog]] | ||
*LPA Prolog | *ESL Prolog-2 | ||
*LPA [[micro-PROLOG]] | *Cogent Prolog Compiler | ||
*Logicware MPROLOG | *IF/Prolog | ||
*MR Prolog | *LPA Prolog | ||
*[[PDC Prolog]] | *LPA [[micro-PROLOG]] | ||
*Prolog II | *Logicware MPROLOG | ||
*Prolog III | *MR Prolog | ||
*Chalcedony Prolog V/Prolog V-Plus | *[[PDC Prolog]] | ||
*Prolog-86+ | *Prolog II | ||
*Prolog III | |||
*[[Quintus Prolog]] | *Chalcedony Prolog V/Prolog V-Plus | ||
*[[SICStus Prolog]] | *Prolog-86+ | ||
*SNI Prolog | *[[Quintus Prolog]] | ||
*[[SICStus Prolog]] | |||
*[[Visual Prolog|Turbo Prolog]] | *SNI Prolog | ||
*VML Prolog | *[[Visual Prolog|Turbo Prolog]] | ||
*VML Prolog | |||
''Freeware'' | |||
*PD Prolog (A.D.A. PD Prolog) | |||
</div> | </div> | ||
==Win-OS/2 | ===Win-OS/2=== | ||
* [[ALS Prolog]] - former commercial/now open source | *[[ALS Prolog]] - former commercial/now open source | ||
*Amzi! Logic Explorer - Freeware | *Amzi! Logic Explorer - Freeware | ||
*Amzi! Prolog+Logic Server - Commercial | *Amzi! Prolog+Logic Server - Commercial | ||
Line 74: | Line 78: | ||
*[[Visual Prolog]] - Commercial | *[[Visual Prolog]] - Commercial | ||
==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"> | ||
Commercial: | Commercial: | ||
Line 99: | Line 103: | ||
* [https://github.com/espakm/prolog4j Prolog4J] - Allows Java programs to use native Prolog engines - Open Source | * [https://github.com/espakm/prolog4j Prolog4J] - Allows Java programs to use native Prolog engines - Open Source | ||
== | ===JavaScript=== | ||
* [http://ioctl.org/logic/prolog1 Prolog in JavaScript] - Note sub-set, split into a few pages - Open Source | * [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 | * [http://yieldprolog.sourceforge.net/ Yield Prolog] - Sub-set - Open Source | ||
==Publications== | ==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 [http://www.eecs.uottawa.ca/~szpak/pub/P4P/Prolog_for_Programmers_neat.pdf] | *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] | ||
*Michael Spivey: ''An Introduction to Logic Programming through Prolog'' - Prentice-Hall 1996, ISBN 0-13-536047-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: [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 | *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] | * 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 | ||
;Papers | ;Papers | ||
Line 123: | Line 129: | ||
* ''Peter Skye'': [http://www.scoug.com/reports/ws98_bourassa.html Logic Programming In Native OS/2] | * ''Peter Skye'': [http://www.scoug.com/reports/ws98_bourassa.html Logic Programming In Native OS/2] | ||
* [http://www.learnprolognow.org/ Learn Prolog Now!] - Tutorial | * [http://www.learnprolognow.org/ Learn Prolog Now!] - Tutorial | ||
* USENET: [news:comp.lang.prolog comp.lang.prolog] | * USENET: [news:comp.lang.prolog comp.lang.prolog] | ||
[[Category:Programming Languages]][[Category:Prolog]] | [[Category:Programming Languages]][[Category:Prolog]] |
Latest revision as of 01:28, 9 August 2024

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.
Implementations
OS/2
Commercial:
- Arity Prolog
- Az-Prolog
- IBM PROLOG for OS/2 - 16-bit only
- IBM SAA AD/Cycle Prolog/2
- ORISAbase, ORISAentry, ORISApro (ORISA Software GmbH)
- PDC Prolog
- PMPro Prolog
- Prolog II+
- Quintus Prolog
- SICStus Prolog
- VMV Prolog (Automata Design Associates)
- Visual Prolog
- XPRO (Rational Vision)
Open Source:
- Prolog libraries
- The Prolog Commons - Not all library functions are germane to OS/2 - Open source
DOS
Open Source
- ALS Prolog
- Aquarius Prolog
- Beta-Prolog
- BinProlog
- Boizumault Prolog
- cu-Prolog
- Stony Brook Prolog - Aka SB-Prolog
Commercial
- Amzi! Prolog+Logic Server
- Arity Prolog
- Az-Prolog
- ESL Prolog-2
- Cogent Prolog Compiler
- IF/Prolog
- LPA Prolog
- LPA micro-PROLOG
- Logicware MPROLOG
- MR Prolog
- PDC Prolog
- Prolog II
- Prolog III
- Chalcedony Prolog V/Prolog V-Plus
- Prolog-86+
- Quintus Prolog
- SICStus Prolog
- SNI Prolog
- Turbo Prolog
- VML Prolog
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:
- CKI-Prolog - Old but works on Java 1.x on vintage hardware
- DGKS Prolog
- GNU Prolog for Java
- JavaLog - Old but works on Java 1.x on vintage hardware
- Jinni Prolog
- jLog
- jTrolog
- Kernel Prolog - Subset
- Mandarax - Prolog variant, not fully compatible
- Prolog Café - Interpreter and translator
- Prova - Prolog variant, not fully compatible
- Styla - Requires Scala
- tuProlog
- W-Prolog
- Utilities
- Prolog4J - Allows Java programs to use native Prolog engines - Open Source
JavaScript
- Prolog in JavaScript - Note sub-set, split into a few pages - Open Source
- Yield Prolog - Sub-set - Open Source
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
- Krzysztof R. Apt, Maurizio Gabbrielli and Dino Pedreschi A closer look at declarative interpretations*
- Thinking in states - Parsers & compilers
- David H. D. Warren: Applied Logic - Its use and implementation as a programming tool
Links
- Alain Colmerauer's homepage - Has a cache of historical papers related to Prolog
- Boizumault Prolog Archive on Github - Contains the example Prolog implementations from his book (above)
- The first 10 Prolog Programming Contests
- Documenting large Prolog programs
- Peter Skye: Logic Programming In Native OS/2
- Learn Prolog Now! - Tutorial
- USENET: comp.lang.prolog