Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
The art of Prolog: advanced programming techniques
Sterling L. (ed), Shapiro E. (ed), MIT Press, Cambridge, MA, 1986. Type: Book (9789780262192507)
Date Reviewed: Oct 1 1987
Comparative Review

First introduced in the early 1970s, Prolog (short for Programming in logic)is rapidly becoming one of the most popular languages for a variety ofartificial intelligence applications, including expert systems, expertdatabases, and natural-language processing. It is quite different fromthird-generation, imperative programming languages, and many procedurallyoriented programmers have some difficulty initially mastering its concepts.Many do, however, persevere because Prolog is an exciting and intriguinglanguage that is as challenging and rewarding to the seasoned Prologprogrammer as it is to the student.

The five books covered in this review address various aspects of Prolog fromits foundation in logic programming to advanced coding techniques andapplications. Some of these books are classics and should be included in anyrespectable library, while others are more application or implementationspecific. Kowalski’s book addresses logic programming, of which Prolog is oneimplementation. Clocksin and Mellish provide the de facto Prolog standard,while Sterling and Shapiro show the depth of the language in advancedprogramming techniques. Marcus and Walker et al. show how Prolog can beapplied to a variety of applications from expert systems to dynamicdatabases; both provide copious coding examples.

Kowalski

This is the book that popularized logic programming. It is animpressive work that combines clarity and simplicity with depth andcompleteness to bring the reader a classic introduction to logic programming.The simplicity, however, is deceptive, as is often the case in great works.This is a book to read and reread, each time uncovering more of the powerand subtlety of logic programming. Most of the topics found in the followingbooks are first introduced in this volume and often with a great deal morefinesse. This book could be used as a textbook in an introductory class inartificial intelligence, or it could be used by a Prolog programmer whowishes to learn more about the variety of uses for Prolog. Its versatility,readability, and coverage of the topics have made it a classic--anecessary component of any Prolog, AI, or database collection.

Clocksin and Mellish

This book helped to popularize Prolog by making it accessible to awide audience of readers and setting a de facto standard for the language.Many advertisements for Prolog interpreters will claim “C&M standard”referring to the standard syntax established by this book. Beyond that,it is also one of the best introductory books on the Prolog language andan excellent text for an introductory course in Prolog programming. Forsomeone trying to teach himself the language, perhaps one of the morepopular paperbacks may provide a more gentle introduction. However, thisbook is also a classic and should be in the collection and within easy reachof any serious Prolog programmer. Clocksin and Mellish are to Prolog whatKernighan and Ritchie [1] are to C. Oth er authors may be able to exploitvarious angles to soften the introduction, but this book is, and probablyalways will be, the standard. [Ed. Note: A third edition of this book,published in 1987, is now available.]

Sterling and Shapiro

This book, as the title states, offers a collection of advancedprogramming techniques that up until now “have remained essentiallyinaccessible to people outside the Prolog community.” The book providesboth a theoretical development of Prolog and a wealth of truly advancedprogramming techniques. This is not an introductory text. It could easilyserve as the text for an advanced graduate course in Prolog programming. Itis not the type of book that you pick up and read from cover to cover.However, for those who are using Prolog to develop sophisticated applicationsystems, it should be kept handy. Lots and lots of coding examples areprovided as are numerous nontrivial exercises. There are no solutions at theback of the book, and I am not ashamed to admit that I could have used them.Each chapter concludes with a section called Background that provides somehistory and additional sources for the topics discussed in the chapter. Thissection frequently puts the chapter in context and lets the reader know whereto find further information on the topics.

Marcus

While this book is of general interest, it is of greatest value toprogrammers using Arity Prolog. It focuses on databases, expert systems,and definite clause grammars for natural language processing. The explanationsare clear, and useful illustrations are provided to help convey trickyconcepts. Lots of coding examples are provided. Some of the information isunique to the syntax and implementation model for Arity Prolog. This aside,the book offers interesting insights into some of the applications ofProlog.

Walker et al.

For Prolog programmers interested in IBM’s Prolog environment, thisbook offers an introduction to the product line along with a lot of general-interest information on Prolog programming techniques, knowledgerepresentation, and natural-language processing. It also introduces IBM’ssyllogistic expert system shell, SYLLOG, which is interesting in its ownright. This book is deeper than the Marcus book and much more difficult toread. It is also product specific in many places, which detracts from itsvalue as a general-purpose text.

Comparison

The purpose of this review is not to select the best of the five. Allof these books are excellent in their own right. They address differentaspects of Prolog, different applications, and, in some cases, differentimplementations. In general, Clocksin and Mellish is a must for anyonelearning Prolog with the intent to program in this language. Kowalski isuseful for anyone who wants to look into logic programming in more depth.For advanced programming techniques, Sterling and Shapiro offer an excellenttext filled with lots o f useful examples. These three are or will be classicsand should be included in every Prolog library. Marcus is more applicationsoriented and is better suited for applications programmers, especially thoseusing Arity Prolog. Similarly, Walker et al. is more applications oriented andis more suited for developers using IBM’s Prolog product line.

Reviewer:  J. M. Artz Review #: CR125969 (87100832)
1) Kernighan, B. W.; and Ritchie, D. M.The C programming language, Prentice-Hall, Englewood Cliffs, NJ, 1978. See <CR> 20, 1 (Jan. 1979), Rev. 33,923.
Comparative Review
This review compares the following items:
  • The art of Prolog: advanced programming techniques:
  • Prolog programming: applications for database systems, expert systems, and natural language systems:
  • Knowledge systems and Prolog: a logical approach to expert systems and natural language processing:
  • Logic for problem-solving:
  • Programming in Prolog (2nd ed.):
  • Bookmark and Share
      Featured Reviewer  
     
    Logic Programming (I.2.3 ... )
     
     
    Prolog (I.2.5 ... )
     
     
    Prolog (D.3.2 ... )
     
     
    Expert System Tools And Techniques (I.2.5 ... )
     
     
    Logic Programming (I.2.3 ... )
     
     
    Prolog (I.2.5 ... )
     
      more  
    Would you recommend this review?
    yes
    no
    Other reviews under "Prolog": Date
    The practice of Prolog
    Sterling L. (ed), MIT Press, Cambridge, MA, 1990. Type: Book (9780262193016)
    Apr 1 1992
    Prolog in practical compiler writing
    Paakki J. The Computer Journal 34(1): 64-72, 1991. Type: Article
    Dec 1 1992
    Parlog86 and the dining logicians
    Ringwood G. Communications of the ACM 31(1): 10-25, 1988. Type: Article
    Feb 1 1989
    more...

    E-Mail This Printer-Friendly
    Send Your Comments
    Contact Us
    Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
    Terms of Use
    | Privacy Policy