An Improved Continuation Call-Based Implementation of Tabling

Tabled evaluation has been proved an effective method to improve several aspects of goal-oriented query evaluation, including termination and complexity. Several "native" implementations of tabled evaluation have been developed which offer good performance, but many of them require significant changes to the underlying Prolog implementation, including the compiler and the abstract machine. Approaches based on program transformation, which tend to minimize changes to both the Prolog compiler and the abstract machine, have also been proposed, but they often result in lower efficiency. We explore some techniques aimed at combining the best of these worlds, i.e., developing an extensible implementation which requires minimal modifications to the compiler and the abstract machine, and with reasonably good performance. Our preliminary experiments indicate promising results.

[1]  R. Ramesh,et al.  A Portable Method of Integrating SLG Resolution into Prolog Systems , 1994, ILPS.

[2]  Ehud Shapiro,et al.  Third International Conference on Logic Programming , 1986 .

[3]  David Scott Warren,et al.  Memoing for logic programs , 1992, CACM.

[4]  C. R. Ramakrishnan,et al.  Practical program analysis using general purpose logic programming systems—a case study , 1996, PLDI '96.

[5]  C. R. Ramakrishnan,et al.  Efficient Model Checking Using Tabled Resolution , 1997, CAV.

[6]  Konstantinos Sagonas,et al.  Tabling in Mercury: Design and Implementation , 2006, PADL.

[7]  Li-Yan Yuan,et al.  Implementation of a Linear Tabling Mechanism , 2001, J. Funct. Log. Program..

[8]  Jeffrey D. Ullman,et al.  A Survey of Research in Deductive Database Systems , 1995 .

[9]  Guang R. Gao,et al.  Special issue on compilers, architecture, and synthesis for embedded systems , 2003, TECS.

[10]  K. A. Ross,et al.  Tabled Evaluation with Delaying for General Logic Programs , 1996 .

[11]  Jeffrey D. Ullman,et al.  A survey of deductive database systems , 1995, J. Log. Program..

[12]  Gopal Gupta,et al.  A Simple Scheme for Implementing Tabled Logic Programming Systems Based on Dynamic Reordering of Alternatives , 2001, ICLP.

[13]  Manuel V. Hermenegildo,et al.  Improved Compilation of Prolog to C Using Moded Types and Determinism Information , 2004, PADL.

[14]  Saumya K. Debray,et al.  On the Practicality of Global Flow Analysis of Logic Programs , 1988, ICLP/SLP.

[15]  Christopher A. Rouff,et al.  Formal Approaches to Agent-Based Systems , 2001, Lecture Notes in Computer Science.

[16]  Harry Chen,et al.  F-OWL: An Inference Engine for Semantic Web , 2004, FAABS.

[17]  Bart Demoen,et al.  CHAT: the copy-hybrid approach to tabling , 1999, Future Gener. Comput. Syst..

[18]  Hisao Tamaki,et al.  OLD Resolution with Tabulation , 1986, ICLP.

[19]  Manuel V. Hermenegildo,et al.  The Ciao Modular, Standalone Compiler and Its Generic Program Processing Library , 1999, Parallelism and Implementation Technology for Logic Programming@ICLP.

[20]  Manuel V. Hermenegildo,et al.  Some improvements over the continuation call tabling implementation technique , 2007 .

[21]  Manuel V. Hermenegildo,et al.  High-level languages for small devices: a case study , 2006, CASES '06.

[22]  Ricardo Rocha,et al.  On Applying Program Transformation to Implement Suspension-Based Tabling in Prolog , 2007, ICLP.

[23]  Hugh Glaser,et al.  Principles of Declarative Programming , 1998, Lecture Notes in Computer Science.

[24]  Konstantinos Sagonas,et al.  An abstract machine for tabled execution of fixed-order stratified logic programs , 1998, TOPL.

[25]  Neng-Fa Zhou,et al.  Linear tabling strategies and optimizations , 2007, Theory and Practice of Logic Programming.

[26]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[27]  Bart Demoen,et al.  CAT: The Copying Approach to Tabling , 1999, J. Funct. Log. Program..

[28]  I. V. Ramakrishnan,et al.  Efficient Tabling Mechanisms for Logic Programs , 1995, ICLP.