ESSES PhD Student Meeting at PLI2003 location:Uppsala, Sweden date:August 26-27, 2003
We present an incremental copying garbage collector for the heap in WAM-based Prolog systems. We describe a new heap layout where the heap will be divided in several blocks of the same size. Other changes to the standard WAM will allow us to collect these blocks independently from each other. Independent collection of these heap blocks will be the basis of our incremental algorithm. Compared to other copying collectors for Prolog, this collector will have several advantages. First of all, we hope to reduce pause times by only collecting one block of the heap at a time. Second, we expect our algorithm to have a lower memory usage. Our algorithm is based on copying without marking (contrary to the more frequently used mark-copy algorithms in the context of Prolog); but while such a copying collector needs a to space as big as the size of its from space, our collector needs a to space only as big as one heap block. Another benefit is that this algorithm also leaves a lot of room for different (generational) garbage collection policies.