Prolog Techniques by Attila Csenki

prolog-techniquesProlog is considered difficult by students. Usually, by the time they learn Prolog, which is most likely to happen in preparation for a course in Artificial Intelligence (AI) or Expert Systems, they will have studied imperative programming and/or the object oriented paradigm. Unfortunately, this prior experience is not always conducive to learning Prolog. Even though there is a good provision of traditional Prolog textbooks. Students still find it hard to write solutions in Prolog to problems of any notable complexity. The author wrote: In my experience this holds also (and in particular) for problems for which Prolog should be the natural choice. This book is intended to relieve the problem by providing a good collection of programming projects, case studies and exercises of various complexity. It will be useful for three kinds of students. Those whose prime source of information is a traditional introductory lecture course in Prolog. For these people my book will serve to show in context how the various programming techniques and language elements may be employed. The book may be used to accompany such a course as a workbook and the student should find in it a wealth of information to answer questions concerning the aspects of Prolog taught in the course. Those who want to refresh and extend their knowledge of Prolog, perhaps with some field of application in mind. Students of AI learning about search algorithms in particular. Most AI books present search algorithms by pseudocode and are not concerned with details of implementation. In my experience, however, anything seen implemented is more likely to be retained (beyond the exam).


In this book the readers will read Accumulator Technique, A simple example, Hand computation, Further examples, Pseudocodes, Generalization, Case study: The perception training algorithm, Classification problem, Algorithm, Implementation, Difference lists, Implementations of list concatenation, Implementation of list flattening, Project: List as Trees and flatten/2, Flattening lists by append/3, Flatten/2 by the Difference list technique, Comparing different versions, Implementations of list reversal, Program transformations, Difference lists as accumulators, Case study: Dijkstra’s  dutch flag problem, Basic implementation using append/3, A more concise version, using difference lists, Rotations, Rotating a list, The perceptron training algorithm revisited, Planar rotations, Application: The gauss – seidel method, Program manipulations, Simple database manipulation, Changing the database, File modifications, Updating right to/2 and, Automated saving of selected predicates, Mini project: modeling a stamp collection, Case study: Automated unfolding, Elementary unfolding, Complete one step unfolding, Rearranging clauses, Dijkstra’s Dutch flag problem revisited, Problem generalization and first solution, Enhanced implementations, Exploratory code development, A nursery rhyme, First preliminary implementation, Another preliminary implementation, The final version, Other approaches, Project: One man went to Mow, Solutions of selected exercises, Software and much more.

To download this book, please click the link below:
Click here to download Prolog Techniques

Leave A Reply

Your email address will not be published.