Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
Memory management for Prolog with tabling
Proceedings of the 1st international symposium on Memory management
An abstract machine for tabled execution of fixed-order stratified logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Implementation of a Linear Tabling Mechanism
PADL '00 Proceedings of the Second International Workshop on Practical Aspects of Declarative Languages
Heap Garbage Collection in XSB: Practice and Experience
PADL '00 Proceedings of the Second International Workshop on Practical Aspects of Declarative Languages
Suspending and Resuming Computations in Engines for SLG Evaluation
PADL '02 Proceedings of the 4th International Symposium 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
Xsb: Extending prolog with tabled logic programming
Theory and Practice of Logic Programming - Prolog Systems
Hi-index | 0.00 |
The Copying Approach to Tabling, abbrv. CAT, is an alternative to SLG-WAM and based on total copying of the areas that the SLG-WAM freezes to preserve execution states of suspended computations. The disadvantage of CAT as pointed out in a previous paper is that in the worst case, CAT must copy so much that it becomes arbitrarily worse than the SLG-WAM. Remedies to this problem have been studied, but a completely satisfactory solution has not emerged. Here, a hybrid approach is presented: CHAT. Its design was guided by the requirement that for non-tabled (i.e. Prolog) execution no changes to the underlying WAM engine need to be made. CHAT combines certain features of the SLG-WAM with features of CAT, but also introduces a technique for freezing WAM stacks without the use of the SLG-WAM's freeze registers that is of independent interest. Empirical results indicate that CHAT is a better choice for implementing the control of tabling than SLG-WAM or CAT. However, programs with arbitrarily worse behaviour exist.