Skip navigation

Logic Programming

Hacking your program is no substitute for understanding your problem. Prolog is different, but not that different. Elegance is not optional. These are the themes that unify Richard O'Keefe's very personal statement on how Prolog programs should be written. The emphasis in The Craft of Prolog is on using Prolog effectively. It presents a loose collection of topics that build on and elaborate concepts learned in a first course.

Selected Research

Constraint logic programming, the notion of computing with partial information, is becoming recognized as a way of dramatically improving on the current generation of programming languages. This collection presents the best of current work on all aspects of constraint logic programming languages, from theory through language implementation.


Investigating meta-programming within the logic programming paradigm, Meta-Logics and Logic Programming presents original research on an important extension of logic programming that makes it more amenable for knowledge representation and programming in general. The 12 contributions, many written especially for this book, explore the foundations, language design issues, and applications of meta-programming in logic programming.

Within the field of logic programming there have been numerous attempts to transform grammars into logic programs. This book describes a complementary approach that views logic programs as grammars and shows how this new presentation of the foundations of logic programming, based on the notion of proof trees, can enrich the field.

Proceedings of the 1999 International Conference on Logic Programming

The International Conference on Logic Programming, sponsored by the Association for Logic Programming, includes tutorials, lectures, and refereed papers on all aspects of logic programming, including theoretical foundations, constraints, concurrency and parallelism, deductive databases, language design and implementation, nonmonotonic reasoning, and logic programming and the Internet.

Proceedings of the 1998 Joint International Conference and Symposium on Logic Programming
Edited by Joxan Jaffar

The Joint International Conference and Symposium on Logic Programming, sponsored by the Association for Logic Programming, includes tutorials, lectures, and refereed papers on all aspects of logic programming, including theoretical foundations, constraints, concurrency and parallelism, deductive databases, language design and implementation, nonmonotonic reasoning, and logic programming and the Internet.

The 1997 International Symposium

The annual International Logic Programming Symposium, traditionally held in North America, is one of the main international conferences sponsored by the Association of Logic Programming. The themes of the 1997 conference are new theoretical and practical accomplishments in logic programming, new research directions where ideas originating from logic programming can play a fundamental role, and relations between logic programming and other fields of computer science.

The 14th International Conference
Edited by Lee Naish

8-12 July 1997, Leuven, Belgium

The International Conference on Logic Programming is the main annual conference sponsored by the Association for Logic Programming. It covers the latest research in areas such as theoretical foundations, constraints, concurrency and parallelism, deductive databases, language design and implementation, non-monotonic reasoning, and logic programming and the Internet.

Proceedings of the 1996 Joint International Conference and Symposium on Logic Programming
Edited by Michael Maher

September 2-6, 1996, Bonn, Germany

The 1995 International Symposium
Edited by John W. Lloyd

December 4-7, 1995, Portland, Oregon

The International Logic Programming Symposium is one of two major international conferences sponsored by the Association of Logic Programming. It is held annually in North America. The theme for the 1995 conference is "Declarative Systems," particularly the integration of the logic programming, functional programming, and object-oriented programming paradigms.

Logic Programming series, Research Reports and Notes

From Machine Learning to Software Engineering

Although Inductive Logic Programming (ILP) is generally thought of  as a research area at the intersection of machine learning and  computational logic, Bergadano and Gunetti propose that most of the  research in ILP has in fact come from machine learning,  particularly in the evolution of inductive reasoning from pattern  recognition, through initial approaches to symbolic machine  learning, to recent techniques for learning relational concepts.

The 12th International Conference

13-16 June 1995, Tokyo, Japan

The 11th International Conference

ICLP, which is sponsored by the Association for Logic Programming, is one of two major annual international conferences reporting recent research results in logic programming. Logic programming originates from the discovery that a subset of predicate logic could be given a procedural interpretation, which was first embodied in the programming language Prolog.

Gödel is a new, general-purpose, declarative programming language that is based on the paradigm of logic programming and can be regarded as a successor to Prolog. This book gives a tutorial overview of Gödel, presents example programs, provides a formal definition of the syntax and semantics of the language, and covers background material on logic.The Gödel language supports types and modules. It has a rich collection of system modules and provides constraint solving in several domains.

Advanced Programming Techniques

This 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.

Proceedings of the Tenth International Conference on Logic Programming June 21-24, 1993, Budapest, Hungary
Edited by David S. Warren

Concurrent Constraint Programming introduces a new and rich class of programming languages based on the notion of computing with partial information, or constraints, that synthesize and extend work on concurrent logic programming and that offer a promising approach for treating thorny issues in the semantics of concurrent, nondeterministic programming languages.

Constraints, Functions, and Objects

This collection of current research on logic programming languages presents results from a three-year, ESPRIT-funded effort to explore the integration of the foundational issues of functional, logic, and object-oriented programming. It offers valuable insights into the fast-developing extensions of logic programming with functions, constraints, concurrency, and objects. Chapters are grouped according to the unifying themes of functional programming, constraint, logic programming, and object-oriented programming.

Edited by Frank Pfenning

Type theory is a well-established branch of theoretical computer science that has played an important role in the development of imperative and functional programming languages. This collection of original research papers assesses and summarizes the impact of types on logic programming. It covers all of the major themes in this burgeoning field, including simple types, regular tree types, polymorphic types, subtypes, and dependent types. Language design issues as well as semantics, pragmatics, and applications of types are discussed.

A Tutorial Reconstruction

This tutorial demystifies one of the most important yet poorly understood aspects of logic programming, the Warren Abstract Machine or WAM. The author's step-by-step construction of the WAM adds features in a gradual manner, clarifying the complex aspects of the design and providing the first detailed study of WAM since it was designed in 1983.

Meta-programs, which treat other computer programs as data, include compilers, editors, simulators, debuggers, and program transformers. Because of the wide ranging applications, meta-programming has become a subject of considerable practical and theoretical interest. This book provides the first comprehensive view of topics in the theory and application of meta-programming, covering problems of representation and of soundness and correctness of interpreters, analysis and evaluation of meta-logic programs, and applications to sophisticated knowledge-based systems.