A real-time garbage collector based on the lifetimes of objects
Communications of the ACM
A time- and space-efficient garbage compaction algorithm
Communications of the ACM
Memory management for Prolog with tabling
Proceedings of the 1st international symposium on Memory management
Garbage collecting the Internet: a survey of distributed garbage collection
ACM Computing Surveys (CSUR)
Segment order preserving copying garbage collection for WAM based Prolog
SAC '96 Proceedings of the 1996 ACM symposium on Applied Computing
Efficient memory management in a merged heap/stack prolog machine
Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
Understanding Memory Management in Prolog Systems
Proceedings of the 17th International Conference on Logic Programming
A Different Look at Garbage Collection for the WAM
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
Heap Garbage Collection in XSB: Practice and Experience
PADL '00 Proceedings of the Second International Workshop on Practical Aspects of Declarative Languages
Segment Order Preserving and Generational Garbage Collection for Prolog
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Garbage Collection Algorithms for Java-Based Prolog Engines
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
Copying Garbage Collection for the WAM: To Mark or Not to Mark?
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
Instruction merging and specialization in the SICStus Prolog virtual machine
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Incremental copying garbage collection for WAM-based Prolog systems
Theory and Practice of Logic Programming
Comparing tag scheme variations using an abstract machine generator
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Sicstus prolog-the first 25 years
Theory and Practice of Logic Programming - Prolog Systems
Theory and Practice of Logic Programming - Prolog Systems
Improving memory usage in the BEAM
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Prolog performance on larger datasets
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Hi-index | 48.22 |
The Warren abstract machine (WAM) has become a generally accepted standard Prolog implementation technique. Garbage collection is an important aspect in the implementation of any Prolog system. A synopsis of the WAM is presented and then marking and compaction algorithms are shown that take advantage of WAM's unique use of the data areas. Marking and compaction are performed on both the heap and the trail; both use pointer reversal techniques, which obviate the need for extra stack space. However, two bits for every pointer on the heap are reserved for the garbage collection algorithm. The algorithm can work on segments of the heap, which may lead to a significant reduction of the total garbage collection time. The time of the algorithms are linear in the size of the areas.