Download PDF

Theory and Practice of Logic Programming

Publication date: 2007-09-01
Pages: 505 - 536
Publisher: Cambridge University Press

Author:

Vandeginste, Ruben
Demoen, Bart

Keywords:

Science & Technology, Technology, Computer Science, Software Engineering, Computer Science, Theory & Methods, Logic, Computer Science, Science & Technology - Other Topics, memory management of logic programming languages, incremental copying garbage collection, WAM based Prolog implementation, cs.PL, 0801 Artificial Intelligence and Image Processing, 0802 Computation Theory and Mathematics, 0803 Computer Software, Computation Theory & Mathematics, 4602 Artificial intelligence, 4613 Theory of computation

Abstract:

The design and implementation of an incremental copying heap garbage collector for WAM-based Prolog systems is presented. Its heap layout consists of a number of equal-sized blocks. Other changes to the standard WAM allow these blocks to be garbage collected independently. The independent collection of heap blocks forms the basis of an incremental collecting algorithm which employs copying without marking (contrary to the more frequently used mark© or mark&slide algorithms in the context of Prolog). Compared to standard semi-space copying collectors, this approach to heap garbage collection lowers in many cases the memory usage and reduces pause times. The algorithm also allows for a wide variety of garbage collection policies including generational ones. The algorithm is implemented and evaluated in the context of hProlog. © 2007 Cambridge University Press.