Jump to ratings and reviews
Rate this book

The Art of Prolog: Advanced Programming Techniques

Rate this book
This new edition of The Art of Prolog contains a number of important changes. Most background sections at the end of each chapter have been updated to take account of important recent research results, the references have been greatly expanded, and more advanced exercises have been added which have been used successfully in teaching the course.

Part II, The Prolog Language, has been modified to be compatible with the new Prolog standard, and the chapter on program development has been significantly the predicates defined have been moved to more appropriate chapters, the section on efficiency has been moved to the considerably expanded chapter on cuts and negation, and a new section has been added on stepwise enhancementâ a systematic way of constructing Prolog programs developed by Leon Sterling.

All but one of the chapters in Part III, Advanced Prolog Programming Techniques, have been substantially changed, with some major rearrangements. A new chapter on interpreters describes a rule language and interpreter for expert systems, which better illustrates how Prolog should be used to construct expert systems. The chapter on program transformation is completely new and the chapter on logic grammars adds new material for recognizing simple languages, showing how grammars apply to more computer science examples.

437 pages, Hardcover

First published January 1, 1986

Loading...
Loading...

About the author

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
21 (35%)
4 stars
22 (37%)
3 stars
12 (20%)
2 stars
4 (6%)
1 star
0 (0%)
Displaying 1 - 2 of 2 reviews
Profile Image for Billy.
26 reviews1 follower
May 4, 2018
This is a book that is designed to take its reader from the level of a complete novice to that of an advanced Prolog programmer. If somebody is motivated to become an advanced Prolog programmer, then I imagine that this book would be good for them. For the casual learner however, it goes into too much depth without giving clear and concise lessons.

The first section of the book teaches the logic that is used by Prolog and it is very approachable and understandable. It caters to those who are used to sequential Pascal-like languages, while being a good reminder for those who are already used to recursion and pattern-matching from Scheme, Haskell and Erlang. The logic is very similar to First-Order Predicate Logic, which is very common in Computer Science.

The second section is said to teach the Prolog language, but instead it simply states that all previous examples are written in near-valid Prolog syntax, and then launches into a description of how Prolog is interpreted. It appears to have been quite important at least at the time, when the order in which clauses and terms were written could significantly impact execution time (and execution at all), but I do not know whether this is still as important. More importantly however, it barely if at all teaches Prolog programming. Only at the end of the section are IO and programming introspection given, and then only briefly. The second section is a disappointment that does not motivate the casual learner to look into the next two.

By this point I was only skim-reading the book, looking for interesting chapters, and I was hard-pressed. The section on advanced programming techniques might be interesting, but they mostly follow the previous section in being about very specific programming styles. There does appear to be a possibly good chapter on data structures, but the overall style of teaching beyond the first section is not very good and still is not here. The final section gives some case studies of actual programs written in Prolog. Unfortunately it is not presented very well either.

Most of the time, short code examples are given in figures that are then referenced in the text. It is a little annoying when the figure appears nowhere near the text that references it. All-too-often, ceither ode is split between figures, or completely separate bits of code are merged in a single figure. Finally, the code itself is given with no context, and the paragraph that references it does not do so very well, as it quickly glosses over many parts of the code. The italics used for representing code does not really help; this book would have greatly benefited from a monospaced font for the code.

The cover art is beautiful though.
423 reviews84 followers
February 24, 2017
A pretty terrible book about the Prolog programming language. Two stars is being generous, but it's definitely not bad enough to warrant 1-star. It's extremely long and highly academic. The first section is just theory and mathematics, and I was starting to wonder if it would ever talk about programming in Prolog.

There is in fact a lot of code in this book, but it was very poorly explained, so it was very hard to follow. The source code in the book uses special symbols that cannot be written with a keyboard. It was never explained why, or how to translate the symbols to actual source code. It felt like they just wanted to stay in the heady mathematical place and not get their hands dirty with actual code. This was made even more confusing because they introduced new Prolog symbols without explaining what they're for. It was hard to tell if it was actually Prolog or just another symbol they just made up.

I can't say I got nothing out of the book. It helped to see a lot of examples. It's hard to find those, since nobody uses Prolog for real applications. By the end, this book gives complete source code for a few simple games and a compiler. Still, I got very, very little from it.
Displaying 1 - 2 of 2 reviews