A Tabling Implementation Based on Variables with Multiple Bindings

  • Authors:
  • Pablo Chico De Guzmán;Manuel Carro;Manuel Hermenegildo

  • Affiliations:
  • School of Computer Science, Univ. Politécnica de Madrid, Spain;School of Computer Science, Univ. Politécnica de Madrid, Spain;School of Computer Science, Univ. Politécnica de Madrid, Spain and IMDEA Software, Spain

  • Venue:
  • ICLP '09 Proceedings of the 25th International Conference on Logic Programming
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Suspension-based tabling systems have to save and restore computation states belonging to OR branches. Stack freezing combined with (forward) trailing is among the better-known implementation approaches for this purpose. Resuming a goal using this technique reinstalls the bindings for all the variables in the environment where the goal was suspended. In this paper we explore an alternative approach where variables can keep track of several bindings, associated with suspensions. Resuming a goal boils down to determining which suspension has to be resumed, in order to select, when dereferencing, the bindings which were active at the moment of suspending. We present the ideas behind this approach, highlight several advantages over other suspension-based implementations, and perform an experimental evaluation. We also recall the similarity between OR-parallelism and suspension-based implementations of tabling, and discuss similarities with the Version Vectors Method , among others.