Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
The practice of Prolog
Sterling L. (ed), MIT Press, Cambridge, MA, 1990. Type: Book (9780262193016)
Date Reviewed: Apr 1 1992

Although Prolog is often associated with artificial intelligence, especially natural language understanding, the stated purpose of this book is to encourage programmers to use Prolog in their day-to-day work. The editor attempts to accomplish this goal by showing how Prolog has been used in a variety of areas by a number of authors, each with a different skill level. The book presents a series of monographs detailing assorted applications written in Prolog. It assumes the reader is familiar with programming Prolog; it is not suitable as a general or introductory text, though it could be used as a supplement.

Eight distinct applications are discussed: prototyping databases, especially using the entity-relationship model to support the human genome project; developing a very large scale integration (VLSI) editor for computer-aided design; using Prolog to analyze register-transfer-level VLSI designs expressed in a graphical description language; developing a research compiler in Prolog that compiles serial Pascal programs into portable, efficient parallel code; creating a partial evaluation system for Prolog; generating natural language explanations from plans; developing a simple machine learning program; and performing stream data analysis on large quantities of data.

The book gets off to a bad start with a short, inferior introduction containing many typographical errors. No transitional material is provided between chapters. This book is disappointingly far from the quality of Sterling and Shapiro’s The art of Prolog [1].

The individual chapters are much better written than the introduction. In general, the chapters are similar to long application conference articles, from which many of them appear to be derived. To their credit, their authors point out the problems in applying Prolog to their particular area as well as the benefits.

Some of the flaws noted represent problems in the Prolog development system used rather than inherent flaws. Problems include the large amount of memory consumed; difficulty in interfacing with other languages; lack of a string data type and associated functions; inadequate control mechanisms; limited input and output functions; and slow execution. The authors suggest ways of ameliorating these concerns.

One of the major benefits was more rapid development due to the declarative, nonprocedural nature of Prolog. Prototypes could be quickly and easily constructed before investing major development effort. The declarative structure also enhanced the clarity of the resulting code and decreased the number of bugs. Other advantages include the presence of a general unifier to provide powerful pattern matching facilities; dynamic variable typing that permits polymorphic routines and partial data structures; meta-level operations to simplify dealing with sets of results; the ability to readily operate on program code as data; built-in operations for handling complex, nested data; and a built-in depth-first search mechanism with backtracking. These higher-level features permitted programs to be developed with substantially fewer lines of code than in more traditional languages. Some authors give quantitative comparisons between Prolog-based approaches and other methods.

A collected series of papers lacks the uniformity and coherence of a textbook. Lengthy introductions to each topic are provided, although these introductions can be interesting in their own right for those with eclectic tastes. Plenty of information is provided, but in a dispersed fashion. Unfortunately, the book has no index, making the information difficult to find.

With these caveats in mind, this book does provide a broad survey of different areas to which Prolog has been applied. The discussions of the advantages and disadvantages of Prolog and the methods employed in constructing these applications should be helpful for those contemplating using Prolog.

Reviewer:  Randy Garrett Review #: CR115480
1) Sterling, L. and Shapiro, E. The art of Prolog: advanced programming techniques. MIT Press, Cambridge, MA, 1986.
Bookmark and Share
 
Prolog (D.3.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Prolog": Date
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
Why Prolog? Justifying logic programming for practical applications
Lazarev G., Prentice-Hall, Inc., Upper Saddle River, NJ, 1989. Type: Book (9789780139590405)
Dec 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