Books

Books : reviews

Tony Dodd.
Prolog: a Logical Approach.
OUP. 1990

(read but not reviewed)

Procedural programming languages, such as FORTRAN, Pascal, and C, expect the programmer to build a representation of the solution to a problem using a model of the execution process of a computer. The goal of logic programming is to provide a higher level formalism, in which the solution is represented using a formal representation that was in use before computers were invented: logic. The present volume starts with an explanation of how logic may be used as a programming language, and then explains the practical limitations that at present restrict logic programmers to the use of the subset of logic embodied in the Prolog programming language. Enhancements to Prolog that compensate for the weakness of its underlying logic, but compromise the purity of the language, are then introduced.

Most Prolog systems add to the logical core of the language a bewildering variety of extra features for procedural tasks such as input/output. The second part of the book presents some of the most commonly met features, including all facilities that are common to all Prologs. As well as the most commonly used facilities, there is an account of more abstruse topics such as garbage collection.

The third part of the volume is concerned with programming style. Its principal aim is to show that despite the illogicalities available in Prolog, the programmer may construct programs that conform to the principles of logic programming by adhering to a number of design criteria. Efficiency of programs is also considered at length. An approach to debugging Prolog programs is presented. Finally the process of designing Prolog programs is discussed and there is an extended example showing how an application is developed.