Abstract
Garbage collection algorithms that do not require tagging of data have been around since the early days of LISP. With the emergence of strongly-typed languages that require heap allocation, interest in tag-free garbage collection has increased. Several papers published recently describe methods for performing tag-free copying garbage collection by retaining compile-time type information at run time. However, all of these algorithms have the “stop and collect” property, in which program execution is suspended for a significant amount of time during garbage collection. For many programs an incremental garbage collection method, in which the garbage collection overhead is spread evenly throughout the computation, is desirable.
Methods for incremental copying garbage collection have been around since the 1970's. However, these algorithms (the most notable of which is Baker's algorithm) rely on tagged data. In this paper, we present a method for performing incremental copying garbage collection without tags. We then extend this method to work for polymorphically typed languages, and to provide breadth-first copying for improved performance and data locality.
This research has been supported, in part, by the National Science Foundation (#CCR-8909634) and DARPA (DARPA/ONR #N00014-91-J1472).
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Appel, A.W. and MacQueen, D.B. A Standard ML Compiler. In Proceedings of the Conference on Functional Programming and Computer Architecture. Springer-Verlag LNCS 274, pp 301–324, 1987.
Appel, A.W. Runtime Tags Aren't Necessary. In Lisp and Symbolic Computation, 2, 153–162, 1989.
Baker, H.G. List Processing in Real Time on a Serial Computer. In Comm. ACM, 21, 4 (April 1978), 280–294.
Branquart, P. and Lewi, J. A Scheme of Storage Allocation and Garbage Collection for Algol-68. In Algol-68 Implementation, North-Holland Publishing Company, 1970.
Britton, D.E. Heap Storage Management for the Programming Language Pascal. Master's Thesis, University of Arizona, 1975.
Cheney, C.J. A nonrecursive list compacting algorithm. Comm. ACM, 13, 11 (Nov 1970), 677–678.
Cohen, J. Garbage Collection of Linked Data Structures. In ACM Computing Surveys, 13(3), 341–367. September 1981.
Dijkstra, E.W., Lamport, L., Martin, A.J., Scholten, C.S., Steffens, E.F.M. On-the-fly garbage collection: An exercise in cooperation. E.W. Dijkstra note EWD496, June 1975.
Fenichel, R.R, and Yochelson, J.C. A LISP garbage-collector for virtual-memory computer systems. Comm. ACM, 12, 11 (Nov. 1969), 611–612.
Goldberg, B. Tag-free garbage collection for strongly typed programming languages. Proceedings of the ACM SIGPLAN'91 Symposium on Programming Language Design and Implementation, June 1991.
Knuth, D.E. The Art of Computer Programming. Volume 2: Fundamental Algorithms, 2nd Ed. Addison-Wesley, 1973.
Lamport, L. On-the-fly garbage collection: Once more with rigor. CA-7508-1611, Mass. Computer Associates, Wakefield, Mass., Aug. 1975.
Minsky, M.L. A LISP garbage collector algorithm using serial secondary storage. Memo 58, M.I.T. A.I Lab., M.I.T, Cambridge, Mass., Oct. 1963.
Milner, R., Tofte, M., and Harper, R. The Definition of Standard ML. MIT Press. 1990.
Muller, K.G. On the feasibility of concurrent garbage collection. Ph.D. thesis, Tech. Hogeschool Delft, The Netherlands, March 1976.
Peyton Jones, S. L and Salkid, J. The spineless tagless G-machine. Proceedings of the 1989 Conference on Functional Programming Languages and Computer Architecture, London, Sept. 1989.
Rudalics, M. Multiprocessor List Memory Management. Ph.D. Thesis, Johannes Kepler University, Austria. RISC-LINZ report 88-87.0, December 1988.
Steele, G.S. Jr. Multiprocessing compactifying garbage collection. In Comm. ACM, 18, 9 (Sept. 1975), 495–508.
Wadler, P.J., Analysis of an algorithm for real-time garbage collection. Comm. ACM, 19, 9 (Sept. 1976), 491–500.
Author information
Authors and Affiliations
Corresponding author
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Goldberg, B. (1992). Incremental garbage collection without tags. In: Krieg-Brückner, B. (eds) ESOP '92. ESOP 1992. Lecture Notes in Computer Science, vol 582. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55253-7_12
Download citation
DOI: https://doi.org/10.1007/3-540-55253-7_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55253-6
Online ISBN: 978-3-540-46803-5
eBook Packages: Springer Book Archive