A Tabling Engine Designed to Support Mixed-Strategy Evaluation

Ricardo Rocha, Fernando Silva and VĂ­tor Santos Costa

December 2003


Tabling is an implementation technique that improves the declarativeness and expressiveness of Prolog by reusing answers to subgoals. During tabled execution, there are several points where different operations can be applied. The decision on which operation to perform is determined by the scheduling strategy. Whereas a strategy can achieve very good performance for certain applications, for others it might add overheads and even lead to unacceptable inefficiency. The ability of using multiple strategies within the same evaluation can be a means of achieving the best possible performance. In this work, we present how the YapTab system was designed to support the two most successful tabling scheduling strategies: batched and local scheduling; and how it can be easily extended to support simultaneous mixed-strategy evaluation.


  author =    {R. Rocha and F. Silva and V. Santos Costa},
  title =     {{A Tabling Engine Designed to Support Mixed-Strategy Evaluation}},
  booktitle = {Proceedings of the 3rd Colloquium on Implementation of Constraint and LOgic Programming 
               Systems (CICLOPS 2003)},
  pages =     {33--44},
  editor =    {R. Lopes and M. Ferreira},
  month =     {December},
  year =      {2003},
  address =   {Mumbai, India},

Download Paper

PDF file

Download Slides

PDF file