Difference between revisions of "Prolog programming books"

From This Prolog Life
Jump to navigation Jump to search
(Replacing broken Amazon links with Worldcat links.)
 
(11 intermediate revisions by the same user not shown)
Line 6: Line 6:
Prolog is a deep subject, rather than a broad one, so it is best studied in stages.
Prolog is a deep subject, rather than a broad one, so it is best studied in stages.


Clocksin & Mellish's [http://www.amazon.co.uk/exec/obidos/ASIN/3540006788/bindingtimeli-21 Programming in Prolog] is the definitive introductory text on Prolog. Most importantly, it will help you to start programming straight away.
Clocksin & Mellish's [https://www.worldcat.org/title/programming-in-prolog/oclc/1199008151/editions Programming in Prolog] is the definitive introductory text on Prolog. Most importantly, it will help you to start programming straight away.


== More Advanced Applications ==
== More Advanced Applications ==


I regard Peter Flach's [http://www.amazon.co.uk/exec/obidos/ASIN/0471941522/bindingtimeli-21 Simply Logical: Intelligent Reasoning by Example] as the best advanced text currently available. It deals with both theoretical and practical aspects of logic programming but doesn't assume prior knowledge beyond that you will have gained from "Programming in Prolog".
I regard Peter Flach's [https://www.worldcat.org/title/simply-logical-intelligent-reasoning-by-example/oclc/246150014/editions Simply Logical: Intelligent Reasoning by Example] as the best advanced text. It deals with both theoretical and practical aspects of logic programming but doesn't assume prior knowledge beyond that you will have gained from "Programming in Prolog".


You can download the programs in the book, and the book as a <abbr title="Portable Document Format">PDF</abbr> file, from the [http://www.cs.bris.ac.uk/~flach/SimplyLogical.html Simply Logical page at Bristol University].
It has an interactive edition at [https://book.simply-logical.space/ simply-logical.space] or you can download the programs in the book, and the book as a <abbr title="Portable Document Format">PDF</abbr> file, from the [http://people.cs.bris.ac.uk/~flach/SimplyLogical.html Simply Logical page at Bristol University].


== The Last Word ==
== The Last Word ==


Robert Kowalski's classic [http://www.amazon.co.uk/exec/obidos/ASIN/0444003681/bindingtimeli-21 Logic for Problem Solving] is essential reading for Prolog programmers. [http://www.amazon.co.uk/exec/obidos/ASIN/3837036294/bindingtimeli-21 Logic for Problem Solving, Revisited] is a recent revised edition.
Robert Kowalski's classic [https://www.worldcat.org/title/logic-for-problem-solving/oclc/710744783/editions Logic for Problem Solving] is essential reading for Prolog programmers. [https://www.worldcat.org/title/logic-for-problem-solving-revisited/oclc/958465391/editions Logic for Problem Solving, Revisited] is a more recent, revised edition.


The original book has been scanned into PDF format and can be downloaded from [http://www.doc.ic.ac.uk/~rak/ Robert Kowalski's homepage].
The original book has been scanned into PDF format and can be downloaded from [http://www.doc.ic.ac.uk/~rak/ Robert Kowalski's homepage].


== Getting Technical ==
== Getting Technical ==
Performance and memory utilisation become important when Prolog is used to solve complex problems.
Performance and memory utilization become important when Prolog is used to solve complex problems.


David Harel's [http://www.amazon.co.uk/exec/obidos/ASIN/0201504014/bindingtimeli-21 Algorithmics] is a very accessible treatment of program behaviour. It isn't tied to one programming language, and the techniques described are readily applicable to Prolog programs.
David Harel's [https://www.worldcat.org/title/algorithmics-the-spirit-of-computing/oclc/889969825/editions Algorithmics] is a very accessible treatment of program behaviour. It isn't tied to one programming language and the techniques described are readily applicable to Prolog programs.


Richard O'Keefe's [http://www.amazon.co.uk/exec/obidos/ASIN/0262150395/bindingtimeli-21 The Craft of Prolog] is a superb exposition of the techniques that can be employed to work ''with'' Prolog, rather than fighting against it, and the rationale behind them.
Richard O'Keefe's [https://www.worldcat.org/title/craft-of-prolog/oclc/1024831685/editions The Craft of Prolog] is a superb exposition of the techniques that can be employed to work ''with'' Prolog, rather than fighting against it, and the rationale behind them.

Latest revision as of 17:03, 7 February 2021

Out of the many Prolog programming books that I have read, I consider these to be the best.

Starting Out

Prolog is a deep subject, rather than a broad one, so it is best studied in stages.

Clocksin & Mellish's Programming in Prolog is the definitive introductory text on Prolog. Most importantly, it will help you to start programming straight away.

More Advanced Applications

I regard Peter Flach's Simply Logical: Intelligent Reasoning by Example as the best advanced text. It deals with both theoretical and practical aspects of logic programming but doesn't assume prior knowledge beyond that you will have gained from "Programming in Prolog".

It has an interactive edition at simply-logical.space or you can download the programs in the book, and the book as a PDF file, from the Simply Logical page at Bristol University.

The Last Word

Robert Kowalski's classic Logic for Problem Solving is essential reading for Prolog programmers. Logic for Problem Solving, Revisited is a more recent, revised edition.

The original book has been scanned into PDF format and can be downloaded from Robert Kowalski's homepage.

Getting Technical

Performance and memory utilization become important when Prolog is used to solve complex problems.

David Harel's Algorithmics is a very accessible treatment of program behaviour. It isn't tied to one programming language and the techniques described are readily applicable to Prolog programs.

Richard O'Keefe's The Craft of Prolog is a superb exposition of the techniques that can be employed to work with Prolog, rather than fighting against it, and the rationale behind them.