• Title of article

    Swapping evaluation: A memory-scalable solution for answer-on-demand tabling

  • Author/Authors

    PABLO CHICO DE GUZMʹAN، نويسنده , , MANUEL CARRO and DAVID S. WARREN، نويسنده ,

  • Issue Information
    روزنامه با شماره پیاپی سال 2010
  • Pages
    16
  • From page
    401
  • To page
    416
  • Abstract
    One of the differences among the various approaches to suspension-based tabled evaluation is the scheduling strategy. The two most popular strategies are local and batched evaluation. The former collects all the solutions to a tabled predicate before making any one of them available outside the tabled computation. The latter returns answers one by one before computing them all, which in principle is better if only one answer (or a subset of the answers) is desired. Batched evaluation is closer to SLD evaluation in that it computes solutions lazily as they are demanded, but it may need arbitrarily more memory than local evaluation, which is able to reclaim memory sooner. Some programs which in practice can be executed under the local strategy quickly run out of memory under batched evaluation. This has led to the general adoption of local evaluation at the expense of the more depth-first batched strategy. In this paper we study the reasons for the high memory consumption of batched evaluation and propose a new scheduling strategy which we have termed swapping evaluation. Swapping evaluation also returns answers one by one before completing a tabled call, but its memory usage can be orders of magnitude less than batched evaluation. An experimental implementation in the XSB system shows that swapping evaluation is a feasible memory-scalable strategy that need not compromise execution speed.
  • Keywords
    Logic programming , tabling , implementation , on-demand answers , Performance
  • Journal title
    theory and practice of logic programming
  • Serial Year
    2010
  • Journal title
    theory and practice of logic programming
  • Record number

    660644