Prolog has a declarative style. A predicate definition includes both the
input and output parameters, and it allows a programmer to define a
desired result without being concerned about the detailed instructions
of how it is to be computed. Such a declarative language offers a
solution to the software crisis, because it is shorter and more concise,
more powerful and understandable than present-day languages. Logic
highlights novel aspects of programming, namely using the same program
to compute a relation and its inverse, and supporting deductive
retrieval of informa- tion. This is a book about using Prolog. Its real
point is the examples introduced from Chapter 3 onwards, and so a Prolog
programmer does not need to read Chapters 1 and 2, which are oriented
more to teachers and to students, respec- tively. The book is
recommended for introductory and advanced university courses, where
students may need to remember the basics about logic program- ming and
Prolog, before starting doing. Chapters 1 and 2 were also kept for the
sake of unity of the whole material. In Chapter 1 a teaching strategy is
explained based on the key concepts of Pro- log which are novel aspects
of programming. Prolog is enhanced as a computer programming language
used for solving problems that involve objects and the relationships
between objects. This chapter provides a pedagogical tour of pre-
scriptions for the organization of Prolog programs, by pointing out the
main draw- backs novices may encounter.