A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
The Semantics of Predicate Logic as a Programming Language
Journal of the ACM (JACM)
Contributions to the Theory of Logic Programming
Journal of the ACM (JACM)
Canonical Forms and Unification
Proceedings of the 5th Conference on Automated Deduction
A FRAMEWORK FOR INCORPORATING ABSTRACTION MECHANISMS INTO THE LOGIC PROGRAMMING PARADIGM
A FRAMEWORK FOR INCORPORATING ABSTRACTION MECHANISMS INTO THE LOGIC PROGRAMMING PARADIGM
Suspension analyses for concurrent logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Analyzing logic programs with dynamic scheduling
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reexecution-Based Analysis of Logic Programs with Delay Declarations
PSI '02 Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics: Akademgorodok, Novosibirsk, Russia
Hi-index | 0.00 |
Most of the theoretical work on the semantics of logic programs assumes an interpreter that provides a complete resolution procedure. In contrast, for reasons of efficiency, most logic programming languages are built around incomplete procedures. This difference is rooted in Prolog, which evaluates resolvent trees in a depth-first rather than a breadth-first order. The gap is widened by some equational logic languages, which combine the incompleteness of depth-first evaluation with incomplete approximations to equational unification. Because of this gap, it is unsound to reason about logic programs using their declarative semantics. This in turn makes it difficult to develop abstraction mechanisms that can be used to partition a logic program into independently specifiable modules.In this paper we consider the role type systems can play in closing the gap between the operational and declarative semantics of logic programs. We develop the notion of an equational mode system for use in constraining the domains of both predicates and unification procedures. The mode system is used to guide the resolution-based interpreter, and as a result, we can show that two predicate implementations with the same declarative meaning will be operationally equivalent.