Abstract
A garbage collector for C++ should maintain the spirit of the language as much as possible and yet provide mechanisms for reliable development and debugging of programs utilizing garbage collection. This paper proposes a design of such a system, including a minimal set of language changes, and compile-time and runtime environment enhancements. The design provides support for many different kinds of garbage collection strategies (copying, mark and sweep, generational, ...), does not impose extensive overhead on runtime objects that do not use garbage collection, and imposes as few restrictions on programming style as possible.
This work supported by the Languages Development Unit of Borland, International
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Daniel Ross Edelson, “Dynamic Storage Reclamation in C++,” Master's Thesis, Univ. of California, Santa Cruz, UCSC-CRL-90-19, June 1990.
Daniel Ross Edelson, “A Mark-and-Sweep Collector for C++,” Conference Record of the Nineteenth ACM Symposium on Principles of Programming Languages, Albuquerque, NM (Jan. 19–22, 1992).
Daniel Ross Edelson & Ira Pohl, “A copying garbage collector for C++,” Usenix C++ Conference Proceedings, Washington, D.C.(Apr. 1991).
Joel F. Bartlett, “Compacting Garbage Collection with Ambiguous Roots,” Digital Equipment Corp., Western Research Center, WRL 88/2, Feb. 1988.
Joel F. Bartlett, “Mostly-Copying Collection Picks Up Generations and C++,” Digital Equipment Corp., Western Research Center, TN-12, Oct. 1989.
David L. Detlefs, “Concurrent Garbage Collection for C++,” Carnegie-Mellon Univ., CMU-CS-90-119, Pittsburgh, PA, May 1990.
Andrew Ginter, “Design Alternatives for a Cooperative Garbage Collector for the C++ Programming Language,” Dept. of Computer Science, Univ. of Calgary, Research Report No. 91/417/01, Calgary, Alberta, Canada, Jan. 1991.
Bjarne Stroustrup, “The evolution of C++: 1985 to 1987,” USENIX C++ Workshop Proceedings (1987).
Hans-Juergen Boehm & Mark Weiser,“Garbage Collection in an Uncooperative Environment,” Software-Practice Experience 18 (Sept. 1988), 807–820.
Luca Cardelli, James Donahue, Lucille Glassman, Mick Jordan, Bill Kalsow & Greg Nelson, Modula-3 Report (revised), Digital Equipment Corp., Western Research Center, 1988.
Andrew W. Appel, “Runtime tags aren't necessary,” Lisp and Symbolic Computation 2 (1989), 153–162.
Benjamin Goldberg, “Tag-Free Garbage Collection for Strongly Typed Programming Languages,” Proceedings of the ACM-SIGPLAN 1991 Conference on Programming Language Design and Implementation26 (June 26–28, 1991), 165–176.
Amer Diwan, Eliot Moss & Richard Hudson,“Compiler Support for Garbage Collection in a Statically Typed Language,” Proceedings of the ACM-SIGPLAN 1992 Conference on Programming Language Design and Implementation 27 (June 17–19, 1992), 273–282.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Samples, A.D. (1992). GC-cooperative C++. In: Bekkers, Y., Cohen, J. (eds) Memory Management. IWMM 1992. Lecture Notes in Computer Science, vol 637. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017198
Download citation
DOI: https://doi.org/10.1007/BFb0017198
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55940-5
Online ISBN: 978-3-540-47315-2
eBook Packages: Springer Book Archive