## The Art of Prolog: Advanced Programming TechniquesThis new edition of The Art of Prolog contains a number of important changes. Most background sections at the end of each chapter have been updated to take account of important recent research results, the references have been greatly expanded, and more advanced exercises have been added which have been used successfully in teaching the course.Part II, The Prolog Language, has been modified to be compatible with the new Prolog standard, and the chapter on program development has been significantly altered: the predicates defined have been moved to more appropriate chapters, the section on efficiency has been moved to the considerably expanded chapter on cuts and negation, and a new section has been added on stepwise enhancement—a systematic way of constructing Prolog programs developed by Leon Sterling. All but one of the chapters in Part III, Advanced Prolog Programming Techniques, have been substantially changed, with some major rearrangements. A new chapter on interpreters describes a rule language and interpreter for expert systems, which better illustrates how Prolog should be used to construct expert systems. The chapter on program transformation is completely new and the chapter on logic grammars adds new material for recognizing simple languages, showing how grammars apply to more computer science examples. |

### What people are saying - Write a review

We haven't found any reviews in the usual places.

### Contents

Introduction | 1 |

Logic Programs | 9 |

Database Programming | 29 |

Recursive Programming | 45 |

The Computation Model of Logic Programs | 87 |

Theory of Logic Programs | 101 |

The Prolog Language | 117 |

Programming in Pure Prolog | 129 |

mAdvanced Prolog Programming Techniques | 247 |

Incomplete Data Structures | 283 |

SecondOrder Programming | 301 |

Interpreters | 319 |

Program Transformation | 357 |

Logic Grammars | 375 |

Search Techniques | 389 |

Applications | 409 |

Arithmetic | 149 |

Structure Inspection | 163 |

MetaLogical Predicates | 175 |

ExtraLogical Predicates | 215 |

Program Development | 233 |

A Credit Evaluation Expert System | 429 |

An Equation Solver | 439 |

A Compiler | 459 |

A Operators | 479 |

### Common terms and phrases

abstract interpreter algorithm append apply argument arithmetic arity backtracking basic behavior binary tree Chapter computation model conjunction Consider context-free grammar data structure database declarative defined definition difference-lists discussed efficient elements empty equation evaluation example Exercises for Section expression fact fail Figure flatten functor given as Program goal order gram graph ground instance input insertion sort instantiated intended meaning iterative list of integers list Xs logic pro logic programming loop meta-interpreter meta-logical move N queens natural numbers NDFA negation negation as failure node nondeterministic nonterminating occurs check output parsing permutation polynomial problem procedure Program 1.1 programming languages Prolog implementations Prolog programs proof tree pure Prolog query queue quicksort reduced relation scheme result search tree solution solve specified stack Standard Prolog sublist subterm system predicates tail tail recursion term terminate tion Towers of Hanoi true unification unify variables Write a program