OLD resolution with tabulation
Proceedings on Third international conference on 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
Logic programming and databases
Proceedings from the first international workshop on Expert database systems
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Communications of the ACM
Extension table built-ins for Prolog
Software—Practice & Experience
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 abstract machine for tabled execution of fixed-order stratified logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
CHAT: The Copy-Hybrid Approach to Tabling
PADL '99 Proceedings of the First International Workshop on Practical Aspects of Declarative Languages
CAT: The Copying Approach to Tabling
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
Proceedings of the 17th International Conference on Logic Programming
On a Tabling Engine That Can Exploit Or-Parallelism
Proceedings of the 17th International Conference on Logic Programming
Suspending and Resuming Computations in Engines for SLG Evaluation
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Mode-directed fixed point computation
LPNMR'05 Proceedings of the 8th international conference on Logic Programming and Nonmonotonic Reasoning
An external module for implementing linear tabling in prolog
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
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
Prolog performance on larger datasets
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Efficient tabling of structured data using indexing and program transformation
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
Hi-index | 0.00 |
Delaying-based tabling mechanisms, such as the one adopted in XSB, are non-linear in the sense that the computation state of delayed calls has to be preserved. In this paper, we present the implementation of a linear tabling mechanism. The key idea is to let a call execute from the backtracking point of a former variant call if such a call exists. The linear tabling mechanism has the following advantages over non-linear ones: (1) it is relatively easy to implement; (2) it imposes no overhead on standard Prolog programs; and (3) the cut operator works as for standard Prolog programs and thus it is possible to use the cut operator to express negation-as-failure and conditionals in tabled programs. The weakness of the linear mechanism is the necessity of re-computation for computing fix-points. However, we have found that re-computation can be avoided for a large portion of calls of directly-recursive tabled predicates. We have implemented the linear tabling mechanism in B-Prolog. Experimental comparison shows that B-Prolog is close in speed to XSB and outperforms XSB when re-computation can be avoided. Concerning space efficiency, B-Prolog is an order of magnitude better than XSB for some programs.