Segment Order Preserving and Generational Garbage Collection for Prolog

  • Ruben Vandeginste
  • Konstantinos Sagonas
  • Bart Demoen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2257)


We treat two important issues in heap garbage collection for WAM-based Prolog systems. First we describe a new method for preserving the order of heap segments in a copying garbage collector. Second, we deal with methods for (multi-)generational garbage collection; in particular we show the importance of precise maintenance of generation lines and propose different and novel ways for its implementation. All the methods are experimentally evaluated.


Garbage Collection Choice Point Garbage Collector Prolog System Minor Collection 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    H. A ït-Kaci. Warren’s Abstract Machine: A Tutorial Reconstruction. The M I T Press, 1991. See also:
  2. 2.
    K. A. M. Ali and R. Karlsson. The Muse approach to OR-parallel Prolog. International Journal of Parallel Programming, 19(2):129–162, Apr. 1990.CrossRefMathSciNetGoogle Scholar
  3. 3.
    K. Appleby, M. Carlsson, S. Haridi, and D. Sahlin. Garbage collection for Prolog based on WAM. Communications of the ACM, 31(6):719–741, June 1988.CrossRefGoogle Scholar
  4. 4.
    Y. Bekkers, O. Ridoux, and L. Ungaro. Dynamic memory management for sequential logic programming languages. In Y. Bekkers and J. Cohen, editors, Proceedings of IWMM’92: International Workshop on Memory Management, number 637 in LNCS, pages 82–102. Springer-Verlag, Sept. 1992.Google Scholar
  5. 5.
    J. Bevemyr and T. Lindgren. A simple and efficient copying garbage collector for Prolog. In M. Hermenegildo and J. Penjam, editors, Proceedings of the Sixth International Symposium on Programming Language Implementation and Logic Programming, number 844 in LNCS, pages 88–101. Springer-Verlag, Sept. 1994.Google Scholar
  6. 6.
    H. Blockeel, L. Dehaspe, B. Demoen, G. Janssens, J. Ramon, and H. Vandecasteele. Executing query packs in ILP. In J. Cussens and A. Frisch, editors, Proceedings of the 10th International Conference on Inductive Logic Programming, number 1866 in LNAI, pages 60–77, Springer, July 2000.Google Scholar
  7. 7.
    C. J. Cheney. A nonrecursive list compacting algorithm. Communications of the ACM, 13(11):677–678, Nov. 1970.zbMATHCrossRefGoogle Scholar
  8. 8.
    Yoo C. Chung, Soo-Mook Moon, Kemal Ebcioglu, and Dan Sahlin. Reducing sweep time for a nearly empty heap. In Proceedings of the ACM SIGPLAN Symposium on Principles of Programming Languages, pages 378–389. ACMPress, Jan. 2000.Google Scholar
  9. 9.
    B. Demoen, G. Engels, and P. Tarau. Segment order preserving copying garbage collection for WAMb ased Prolog. In Proceedings of the 1996 ACM Symposium on Applied Computing, pages 380–386. ACMPress, Feb. 1996.Google Scholar
  10. 10.
    B. Demoen, P.-L. Nguyen. So many WAM variations, so little time. In J. Lloyd, editor, Proceedings of Computational Logic-CL2000, First International Conference, number 1861 in LNAI, pages 1240–1254, Springer, July 2000.Google Scholar
  11. 11.
    B. Demoen and K. Sagonas. CHAT is Θ(SLG-WAM). In H. Ganzinger, D. McAllester, and A. Voronkov, editors, Proceedings of the 6th International Conference on Logic for Programming and Automated Reasoning, number 1705 in LNAI, pages 337–357. Springer, Sept. 1999.Google Scholar
  12. 12.
    R. Jones and R. Lins. Garbage Collection: Algorithms for automatic memory management. John Wiley, 1996.Google Scholar
  13. 13.
    X. Li. Efficient memory management in a merged heap/stack Prolog machine. In Proceedings of the 2nd ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP’00), pages 245–256. ACMPress, Sept. 2000.Google Scholar
  14. 14.
    H. Lieberman and C. Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(8):419–429, June 1983.CrossRefGoogle Scholar
  15. 15.
    F. L. Morris. A time-and space-efficient garbage compaction algorithm. Communications of the ACM, 21(8):662–665, Aug. 1978.zbMATHCrossRefGoogle Scholar
  16. 16.
    K. Sagonas and B. Demoen. From (multi-)generational to segment order preserving copying garbage collection for the WAM. K. U. Leuven CW report 303, October 2000. See
  17. 17.
    H. Touati and T. Hama. A light-weight Prolog garbage collector. In Proceedings of the International Conference on Fifth Generation Computer Systems (FGCS’88), pages 922–930. OHMSHA Ltd. Tokyo and Springer-Verlag, Nov./Dec. 1988.Google Scholar
  18. 18.
    R. Vandeginste and B. Demoen. The implementation of a new segment preserving and/or (multi-)generational copying garbage collection for the WAMan d its approximation. K. U. Leuven CW report 319, July 2001. See also:
  19. 19.
    D. H. D. Warren. An abstract Prolog instruction set. Technical Report 309, SRI International, Menlo Park, U. S. A., Oct. 1983.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Ruben Vandeginste
    • 1
  • Konstantinos Sagonas
    • 2
  • Bart Demoen
    • 1
  1. 1.Department of Computer ScienceKatholieke Universiteit LeuvenBelgium
  2. 2.Computing Science DepartmentUppsala UniversitetSweden

Personalised recommendations