Preface
Since the first edition of this book the field of logic programming has developed and matured in many respects. This has been reflected by the large number of textbooks that appeared in that period. These books usually fall into one of the following three categories: • books which provide a theoretical basis for logic programming; • books which describe how to write programs in Prolog (sometimes even in particular Prolog systems); • books which describe alternative logic programming languages like constraint logic programming, deductive databases or concurrent logic programming.
Objectives The main objective of both editions of this textbook is to provide a uniform account of both the foundations of logic programming and simple programming techniques in the programming language Prolog. The discussion of the foundations also facilitates a systematic survey of variants of the logic programming scheme, like constraint logic programming, deductive databases or concurrent logic programming. This book is not primarily intended to be a theoretical handbook on logic programming. Nor is it intended to be a book on advanced Prolog programming or on constraint logic programming. For each of these topics there are more suitable books around. Because of the diversity of the field there is of course a risk that nothing substantial is said about anything. We have tried to compensate for this risk by limiting our attention to (what we think are) the most important areas of logic programming and by providing the interested reader with pointers containing suggestions for further reading. As a consequence of this: ix