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
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
Copying Garbage Collection for the WAM: To Mark or Not to Mark?
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
Optimal union-find in Constraint Handling Rules
Theory and Practice of Logic Programming
Sicstus prolog-the first 25 years
Theory and Practice of Logic Programming - Prolog Systems
Hi-index | 0.00 |
This paper describes how to extend the garbage collection for WAM so that it will shunt chains of bound variables if possible. Doing so has two advantages: 1. Space is saved by making it possible to deallocate the intermediate cells. This is particularly useful when those cells are associated with frozen goals. 2. Later dereferencing is speeded up by not having to follow long variable chains. The main complication of this optimization is the treatment of the trailed variables. We claim that all possible chains of variables are shunted by this algorithm. The algorithm has been implemented in SICStus Prolog, and benchmark results are presented in this paper. The full source code for the shunting algorithm is given in this paper.