A Program Transformation for Continuation Call-Based Tabled Execution
Pablo Chico de Guzman, Manuel Carro, Manuel V. Hermenegildo

TL;DR
This paper introduces a complete program transformation for continuation call-based tabled execution, enabling arbitrary programs to benefit from tabled evaluation with improved implementation simplicity and competitive performance.
Contribution
It provides a full translation method for continuation call techniques that overcomes previous limitations, allowing execution of any tabled program with existing runtime support.
Findings
CCall offers a practical tradeoff between implementation complexity and efficiency.
Performance results show CCall is competitive with state-of-the-art implementations.
The transformation enables arbitrary tabled programs to be executed effectively.
Abstract
The advantages of tabled evaluation regarding program termination and reduction of complexity are well known --as are the significant implementation, portability, and maintenance efforts that some proposals (especially those based on suspension) require. This implementation effort is reduced by program transformation-based continuation call techniques, at some efficiency cost. However, the traditional formulation of this proposal by Ramesh and Cheng limits the interleaving of tabled and non-tabled predicates and thus cannot be used as-is for arbitrary programs. In this paper we present a complete translation for the continuation call technique which, using the runtime support needed for the traditional proposal, solves these problems and makes it possible to execute arbitrary tabled programs. We present performance results which show that CCall offers a useful tradeoff that can be…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Logic, programming, and type systems · Software Testing and Debugging Techniques
