Garbarge collection for Prolog based on WAM
Communications of the ACM
The memory fragmentation problem: solved?
Proceedings of the 1st international symposium on Memory management
Memory management for Prolog with tabling
Proceedings of the 1st international symposium on Memory management
An abstract machine for tabled execution of fixed-order stratified logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Segment order preserving copying garbage collection for WAM based Prolog
SAC '96 Proceedings of the 1996 ACM symposium on Applied Computing
A time- and space-efficient garbage compaction algorithm
Communications of the ACM
A nonrecursive list compacting algorithm
Communications of the ACM
Dynamic Memory Management for Sequential Logic Programming Languages
IWMM '92 Proceedings of the International Workshop on Memory Management
CHAT: The Copy-Hybrid Approach to Tabling
PADL '99 Proceedings of the First International Workshop on Practical Aspects of Declarative Languages
A Simple and Efficient Copying Garbage Collector for Prolog
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
CAT: The Copying Approach to Tabling
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
Understanding Memory Management in Prolog Systems
Proceedings of the 17th International Conference on Logic Programming
So Many WAM Variations, So Little Time
CL '00 Proceedings of the First International Conference on Computational Logic
Hi-index | 0.00 |
Starting from a theoretical understanding of the usefulness logic of a logic programming system with built-in tabling, and from a collector that did not take the characteristics of a tabled abstract machine into account we have build two heap garbage collectors (one mark&slide, one mark©) for XSB on top of the CHAT implementation model for the suspension/resumption of consumers. Based on this experience we discuss implementation issues that are general to heap garbage collection for the WAM and also issues that are specific to an implementation with tabling: as such, this paper documents our own implementation and can serve as guidance for anyone attempting a similar feat. We report on the behaviour of the garbage collectors on different kinds of programs. We also present figures on the extent of internal fragmentation and the effectiveness of early reset in Prolog systems with and without tabling.