Foundations of logic programming
Foundations of logic programming
An amateur's introduction to recursive query processing strategies
SIGMOD '86 Proceedings of the 1986 ACM SIGMOD international conference on Management of data
Principles of database and knowledge-base systems, Vol. I
Principles of database and knowledge-base systems, Vol. I
Towards a theory of declarative knowledge
Foundations of deductive databases and logic programming
Every logic program has a natural stratification and an iterated least fixed point model
PODS '89 Proceedings of the eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Communications of the ACM
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Memoization in top-down parsing
Computational Linguistics
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
Practical program analysis using general purpose logic programming systems—a case study
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Parameter passing and control stack management in Prolog implementation revisited
ACM Transactions on Programming Languages and Systems (TOPLAS)
An abstract machine for tabled execution of fixed-order stratified logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Deductive database languages: problems and solutions
ACM Computing Surveys (CSUR)
OLD Resolution with Tabulation
Proceedings of the Third International Conference on Logic Programming
Proceedings of the 17th International Conference on Logic Programming
CAT: The Copying Approach to Tabling
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
Efficient fixpoint computation in linear tabling
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Linear tabulated resolution based on Prolog control strategy
Theory and Practice of Logic Programming
Semi-naive evaluation in linear tabling
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
On applying or-parallelism and tabling to logic programs
Theory and Practice of Logic Programming
Dyna: a declarative language for implementing dynamic programs
ACLdemo '04 Proceedings of the ACL 2004 on Interactive poster and demonstration sessions
Tabled higher-order logic programming
Tabled higher-order logic programming
Parameter learning of logic programs for symbolic-statistical modeling
Journal of Artificial Intelligence Research
Dynamic mixed-strategy evaluation of tabled logic programs
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Tabling in mercury: design and implementation
PADL'06 Proceedings of the 8th international conference on Practical Aspects of Declarative Languages
A Sketch of a Complete Scheme for Tabled Execution Based on Program Transformation
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Towards a Complete Scheme for Tabled Execution Based on Program Transformation
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Logic-Based Probabilistic Modeling
WoLLIC '09 Proceedings of the 16th International Workshop on Logic, Language, Information and Computation
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
A Tabling Implementation Based on Variables with Multiple Bindings
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
An improved continuation call-based implementation of tabling
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
An efficient implementation of linear tabling based on dynamic reordering of alternatives
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
The language features and architecture of b-prolog
Theory and Practice of Logic Programming - Prolog Systems
On the implementation of gnu prolog
Theory and Practice of Logic Programming - Prolog Systems
Efficient tabling of structured data with enhanced hash-consing
Theory and Practice of Logic Programming
A Tabled Prolog Program for Solving Sokoban
Fundamenta Informaticae - Special Issue on the Italian Conference on Computational Logic: CILC 2011
Hi-index | 0.00 |
Recently there has been a growing interest in research in tabling in the logic programming community because of its usefulness in a variety of application domains including program analysis, parsing, deductive databases, theorem proving, model checking, and logic-based probabilistic learning. The main idea of tabling is to memorize the answers to some subgoals and use the answers to resolve subsequent variant subgoals. Early resolution mechanisms proposed for tabling such as OLDT and SLG rely on suspension and resumption of subgoals to compute fixpoints. Recently, the iterative approach named linear tabling has received considerable attention because of its simplicity, ease of implementation, and good space efficiency. Linear tabling is a framework from which different methods can be derived on the basis of the strategies used in handling looping subgoals. One decision concerns when answers are consumed and returned. This article describes two strategies, namely, lazy and eager strategies, and compares them both qualitatively and quantitatively. The results indicate that, while the lazy strategy has good locality and is well suited for finding all solutions, the eager strategy is comparable in speed with the lazy strategy and is well suited for programs with cuts. Linear tabling relies on depth-first iterative deepening rather than suspension to compute fixpoints. Each cluster of interdependent subgoals as represented by a topmost looping subgoal is iteratively evaluated until no subgoal in it can produce any new answers. Naive re-evaluation of all looping subgoals, albeit simple, may be computationally unacceptable. In this article, we also introduce semi-naive optimization, an effective technique employed in bottom-up evaluation of logic programs to avoid redundant joins of answers, into linear tabling. We give the conditions for the technique to be safe (i.e., sound and complete) and propose an optimization technique called early answer promotion to enhance its effectiveness. Benchmarking in B-Prolog demonstrates that with this optimization linear tabling compares favorably well in speed with the state-of-the-art implementation of SLG.