An Introduction to Logic Programming Through Prolog
This is one of the few texts that combines three essential theses in the study of logic programming: the logic that gives logic programs their unique character: the practice of programming effectively using the logic; and the efficient implementation of logic programming on computers. The book begins with a gentle introduction to logic programming using a number of simple examples, followed by a concise and self-contained account of the logic behind Prolog programming. This leads to a discussion of methods of writing programs so that the process of deriving anwers from them is as efficient as possible. The techniques are illustrated by practical examples and the final part of the book explains how logic programming can be implented efficiently. It includes source code for a small but Complete Prolog implementation written in Pascal. The implementation is capable of running all the programs presented in the book, and is available via the Internet.
What people are saying - Write a review
We haven't found any reviews in the usual places.
Programming with relations
The meaning of logic programs
16 other sections not shown
algorithm allows answer substitution app.l append append(A append(nil applying arguments arity array backtracking begin Boolean breadth-first search built-in relation Chapter character circuit clause body closed world assumption compiler consec(x contains database define a relation definition depth-first search derivation tree discarded element empty example expr expression false Figure formula function symbols garbage collector global stack graph ground literals ground resolution ground substitution Horn clauses imperative programming implementation inference rules infinite branch input integer interpreter list of clauses logic programming machine macro match negation as failure node notation occur check operation output parser Pascal picoProlog program pointer problem procedure program clause programming language Prolog system refutation relation symbols represented resolution step search tree sequence simplified SLD-refutation solution solve space stack frame storage string subgoal substitution and ground tail recursion tempstring token transistors true truth table unification unifier variables