Abstract
A unidirectional heap is a heap where all pointers go in one direction, e.g. from newer to older objects. For a strict functional language, such as Erlang, the heap may be arranged so that it is unidirectional. We here present a compacting garbage collection algorithm which utilizes the fact that a heap is unidirectional.
Only one memory space is used in our algorithm. In fact, no extra memory is used at all, not even any reserved bits within the cells. The algorithm is quite easy to extend to a variant of generational garbage collection.
Preview
Unable to display preview. Download preview PDF.
References
Karen Appleby, Mats Carlsson, Seif Haridi, and Dan Sahlin. Garbage collection for Prolog based on WAM. CACM, pages 719–741, 1988.
J. L. Armstrong, B. O. Däcker, S. R. Virding, and M. C. Williams. Implementing a functional language for highly parallel real time applications. In SETSS 92, 1992.
Joe Armstrong. Erlang — a survey of the language and its industrial applications. In INAP'96 — The 9th Exhibitions and Symposium on Industrial Applications of Prolog, October 1996. Hino, Tokyo, Japan.
Joe Armstrong and Robert Virding. One pass real-time generational mark-sweep garbage collection. In International Workshop on Memory Management 1995, 1995.
Joe Armstrong, Robert Virding, Claes Wikström, and Mike Williams. Concurrent Programming in ERLANG. Prentice Hall, 1996.
David A. Fisher. Bounded workspace garbage collection in an address-order preserving list processing environment. Info. Proc. Letters, 3(1), July 1974.
H. Lieberman and C. Hewitt. A real time garbage collector based on the life time of objects. CACM, 26(6): 419–429, 1983.
F.L. Morris. A time and space efficient garbage compaction algorithm. CACM 21, 21(8), 1978.
Robert Virding. A garbage collector for the concurrent real-time language Erlang. In Henry G. Baker, editor, International Workshop on Memory Management 1995, number 986 in Lecture Notes in Computer Science. Springer, September 1995. ISBN 3-540-60368-9.
Paul R. Wilson. Uniprocessor garbage collection techniques. In International Workshop on Memory Management 1992, volume 637. Springer-Verlag, September 1992. A much expanded version of the paper is available from http://www.cs.utexas.edu/users/oops/papers.html.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Boortz, K., Sahlin, D. (1998). A compacting garbage collector for unidirectional heaps. In: Clack, C., Hammond, K., Davie, T. (eds) Implementation of Functional Languages. IFL 1997. Lecture Notes in Computer Science, vol 1467. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055441
Download citation
DOI: https://doi.org/10.1007/BFb0055441
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64849-9
Online ISBN: 978-3-540-68528-9
eBook Packages: Springer Book Archive