skip to main content
Skip header Section
Computing with logic: logic programming with PrologJanuary 1988
Publisher:
  • Benjamin-Cummings Publishing Co., Inc.
  • Subs. of Addison-Wesley Longman Publ. Co390 Bridge Pkwy. Redwood City, CA
  • United States
ISBN:978-0-8053-6681-5
Published:01 January 1988
Pages:
535
Skip Bibliometrics Section
Bibliometrics
Abstract

No abstract available.

Cited By

  1. ACM
    Vianu V Datalog Unchained Proceedings of the 40th ACM SIGMOD-SIGACT-SIGAI Symposium on Principles of Database Systems, (57-69)
  2. Borraz-Sánchez C, Klabjan D, Pasalic E and Aref M SolverBlox Declarative Logic Programming, (331-354)
  3. Maier D, Tekle K, Kifer M and Warren D Datalog Declarative Logic Programming, (3-100)
  4. ACM
    Makrynioti N, Vasiloglou N, Pasalic E and Vassalos V Modelling Machine Learning Algorithms on Relational Data with Datalog Proceedings of the Second Workshop on Data Management for End-To-End Machine Learning, (1-4)
  5. ACM
    Aref M, ten Cate B, Green T, Kimelfeld B, Olteanu D, Pasalic E, Veldhuizen T and Washburn G Design and Implementation of the LogicBlox System Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, (1371-1382)
  6. ACM
    Nunes-Harwitt A From Naïve to Norvig On Deriving a PROLOG Compiler Proceedings of ILC 2014 on 8th International Lisp Conference, (70-78)
  7. Green T, Aref M and Karvounarakis G LogicBlox, platform and language Proceedings of the Second international conference on Datalog in Academia and Industry, (1-8)
  8. Campagna D, Sarna-Starosta B and Schrijvers T Optimizing inequality joins in datalog with approximated constraint propagation Proceedings of the 14th international conference on Practical Aspects of Declarative Languages, (108-122)
  9. Tekle K, Hristova K and Liu Y Generating Specialized Rules and Programs for Demand-Driven Analysis Proceedings of the 12th international conference on Algebraic Methodology and Software Technology, (346-361)
  10. ACM
    Singh A, Ramakrishnan C, Ramakrishnan I, Stoller S and Warren D Security policy analysis using deductive spreadsheets Proceedings of the 2007 ACM workshop on Formal methods in security engineering, (42-50)
  11. ACM
    Armstrong J A history of Erlang Proceedings of the third ACM SIGPLAN conference on History of programming languages, (6-1-6-26)
  12. Ramakrishnan C, Ramakrishnan I and Warren D Deductive spreadsheets using tabled logic programming Proceedings of the 22nd international conference on Logic Programming, (391-405)
  13. Kifer M, de Bruijn J, Boley H and Fensel D A realistic architecture for the semantic web Proceedings of the First international conference on Rules and Rule Markup Languages for the Semantic Web, (17-29)
  14. ACM
    Stern L and Sterling L Teaching AI algorithms using animations reinforced by interactive exercises Proceedings of the 2nd Australasian conference on Computer science education, (78-83)
  15. Han J (1994). Constraint-Based Query Evaluation in Deductive Databases, IEEE Transactions on Knowledge and Data Engineering, 6:1, (96-107), Online publication date: 1-Feb-1994.
  16. ACM
    Kilpeläinen P and Mannila H Retrieval from hierarchical texts by partial patterns Proceedings of the 16th annual international ACM SIGIR conference on Research and development in information retrieval, (214-222)
  17. ACM
    Warren D (1992). Memoing for logic programs, Communications of the ACM, 35:3, (93-111), Online publication date: 1-Mar-1992.
  18. ACM
    Roach D and Berghel H The physiology of PROLOG expert system inference engine Proceedings of the 1990 ACM SIGSMALL/PC symposium on Small systems, (1-5)
  19. ACM
    Cosmadakis S On the first-order expressibility of recursive queries Proceedings of the eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems, (311-323)
  20. ACM
    Afrati F and Cosmadakis S Expressiveness of restricted recursive queries Proceedings of the twenty-first annual ACM symposium on Theory of computing, (113-126)
  21. Tick E Data buffer performance for sequential Prolog architectures Proceedings of the 15th Annual International Symposium on Computer architecture, (434-442)
  22. ACM
    Tick E (1988). Data buffer performance for sequential Prolog architectures, ACM SIGARCH Computer Architecture News, 16:2, (434-442), Online publication date: 17-May-1988.
  23. ACM
    Cosmadakis S, Gaifman H, Kanellakis P and Vardi M Decidable optimization problems for database logic programs Proceedings of the twentieth annual ACM symposium on Theory of computing, (477-490)
Contributors
  • Portland State University
  • Stony Brook University

Recommendations

Jiri Zlatuska

This book is a graduate-level text devoted to logic programming languages, especially Prolog. It provides a broad view of various aspects of logic programs, covering semantics, the background of automated theorem proving, and efficient techniques for the implementation of logic programming languages. The aims of the authors and the contents of the book are best expressed using the following excerpt from the authors' introduction: The most widely used logic programming language is Prolog. It does not achieve all the ideals [set for logic programming languages]. We do need to think about control when writing a Prolog program, but at least we may ignore control for a first cut at understanding the program. Consider what we need for an effective declarative language. 1.A clear statement of the semantics of the language, independent of operational considerations. For logic programming, the semantics is based on formal logic and model theory. . . . 2.A theory of meaning-preserving transformations on programs—that is, a deduction system. In logic programming we have rules and properties relating knowns and unknowns, and we apply transformations to them to solve for the unknowns. . . . 3.Strategies for applying the transformations to yield a solution for the unknowns if it exists, and special forms for statements that support particular strategies. The special forms should make the strategy easy to express. . . . 4.Suitable data structures and algorithms for implementing the strategy efficiently in a particular machine. . . . This book is organized into three parts, each of which covers the preceding points 1-4 for three successively more powerful logic languages. Part I is on Proplog, a logic language based on propositional logic. Part II is on Datalog, a language for predicate logic (without function symbols). Part III covers Prolog, a language based on functional logic (predicate logic including function symbols). . . . We have tried to be obvious rather than clever or succinct. There are no great mysteries to logic programming semantics or Prolog implementation. We present those topics so that any advanced computer science student or practitioner can master them. Each chapter of the text is accompanied by an extensive set of exercises, and the appendix provides suggestions for possible use of the text in a course taking either of two approaches: one emphasizing the theory and use of logic programming languages, and one emphasizing the theory and implementation of logic programming systems. For each of these directions, possible course projects are suggested. The index covers notions introduced in the text, Prolog predicates, and procedures and abstract instructions used for the exposition of implementational techniques. Each chapter is accompanied by comments on both history and research directions, and provides the bibliography relevant for the chapter. The inclusion of the bibliography in the relevant chapters of the book is suitable for the book's use as a text, but sometimes may be inconvenient to work with, especially insofar as the book also can be used as a reference. (The locality of bibliographic references, nonetheless, sometimes allows for easier corrections of some wrong reference numbers in citations, as on page 263.) The book is extremely well written, and the authors succeed in creating a unique text presenting logic programming from a broad perspective, ranging from theoretical background to details of efficient implementation. Many topics that earlier occurred only as a part of logic programming folklore (e.g., Datalog as a language) are presented in a unified and comprehensive way here. Also, this is the only book covering the principles of Prolog compilation techniques and presenting a view really close to the state of the art in Prolog implementations. The exposition of the material in the text is self-contained and provides sufficiently detailed treatment of relevant concepts from mathematical logic, databases, and automated theorem proving that little would be needed as a prerequisite. In fact, for a student with a more practically programming-oriented background, the text may also supply sufficient motivation for related more theoretical concepts and provide valuable intuitions for them. The only pity is that the volume of the material in the text is definitely too large to be covered within a one-semester course. (Only sequential logic programming is discussed in the text; any issues related to parallel logic programming are completely skipped. It is clear, however, that the introduction of concurrency was beyond reasonable limits for the areas that could be treated within the text.) In any case, the student would definitely benefit from the opportunity to confront the view of these topics from a different perspective than is used in other courses. The text provides an excellently balanced mix of both theoretical and implementation aspects of logic programming languages, and it is the only book available that covers this area from such a broad perspective, depth, and currency. It can be strongly recommended for consideration for graduate-level courses on logic programming or Prolog. It can also serve as an outstanding reference for anybody interested in programming in Prolog, the theory of logic programs, or implementation of logic programming languages.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.