| Home > Publications > Reports > Informatics (CW) |
CW 261
B. Demoen and K. Sagonas
Memory management for Prolog with Tabling
Abstract
Tabling can be implemented in a Prolog system by means of the SLG-WAM: consumers suspend by freezing the execution stacks. XSB is an implementation that does so. The memory model is quite complex and attempts to understand the notion of usefulness of data in XSB well enough to build a precise garbage collector have failed in the past. CAT is a recent alternative to SLG-WAM: it suspends consumers by copying parts of the execution stacks. The memory model is simpler and the design of a more precise garbage collector became feasible. CAT also provided the necessary insights in the usefulness of data in the context of the SLG-WAM. This paper describes the memory management of tabled logic programming systems, whether based on the SLG-WAM or on CAT. Since CAT can perform arbitrarily worse than SLG-WAM space-wise, also a minor garbage collection on creation of the CAT areas is described and its effectiveness is discussed
report.pdf / mailto: B. Demoen
