Efficient loop detection in Prolog using the tortoise-and-hare technique
Journal of Logic Programming
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Towards a theory of declarative knowledge
Foundations of deductive databases and logic programming
Negation as failure using tight derivations for general logic programs
Journal of Logic Programming
Recursive query processing: the power of logic
Theoretical Computer Science
An analysis of loop checking mechanisms for logic programs
Theoretical Computer Science
Communications of the ACM
The underlying search for Magic Templates and tabulation
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
XSB as an efficient deductive database engine
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Redundancy elimination and loop checks for logic programs
Information and Computation
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
Parameter passing and control stack management in Prolog implementation revisited
ACM Transactions on Programming Languages and Systems (TOPLAS)
An extended variant of atoms loop check for positive logic programs
New Generation Computing
An abstract approach to some loop detection problems
Fundamenta Informaticae
An abstract machine for tabled execution of fixed-order stratified logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
OLD Resolution with Tabulation
Proceedings of the Third International Conference on Logic Programming
Eliminating unwanted loops in Prolog
ACM SIGPLAN Notices
Loop checks for logic programs with functions
Theoretical Computer Science
SLT-Resolution for the Well-Founded Semantics
Journal of Automated Reasoning
Suspending and Resuming Computations in Engines for SLG Evaluation
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Efficient fixpoint computation in linear tabling
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive 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
Linear tabling strategies and optimizations
Theory and Practice of Logic Programming
Dynamic reordering of alternatives for definite logic programs
Computer Languages, Systems and Structures
Parameter learning of logic programs for symbolic-statistical modeling
Journal of Artificial Intelligence Research
A Generalized QSQR Evaluation Method for Horn Knowledge Bases
ACM Transactions on Computational Logic (TOCL)
ICCCI'12 Proceedings of the 4th international conference on Computational Collective Intelligence: technologies and applications - Volume Part I
Towards Practical ABox Abduction in Large Description Logic Ontologies
International Journal on Semantic Web & Information Systems
Hi-index | 0.00 |
Infinite loops and redundant computations are long recognized open problems in Prolog. Two methods have been explored to resolve these problems: loop checking and tabling. Loop checking can cut infinite loops, but it cannot be both sound and complete even for function-free logic programs. Tabling seems to be an effective way to resolve infinite loops and redundant computations. However, existing tabulated resolutions, such as OLDT-resolution, SLG-resolution and Tabulated SLS-resolution, are non-linear because they rely on the solution-lookup mode in formulating tabling. The principal disadvantage of non-linear resolutions is that they cannot be implemented using a simple stack-based memory structure like that in Prolog. Moreover, some strictly sequential operators such as cuts may not be handled as easily as in Prolog. In this paper, we propose a hybrid method to resolve infinite loops and redundant computations. We combine the ideas of loop checking and tabling to establish a linear tabulated resolution called TP-resolution. TP-resolution has two distinctive features: (1) it makes linear tabulated derivations in the same way as Prolog except that infinite loops are broken and redundant computations are reduced. It handles cuts as effectively as Prolog; and (2) it is sound and complete for positive logic programs with the bounded-term-size property. The underlying algorithm can be implemented by an extension to any existing Prolog abstract machines such as WAM or ATOAM.