Skip to main content

GC-cooperative C++

  • Object Oriented Languages
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 637))

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.

Unable to display preview. Download preview PDF.

References

  1. Daniel Ross Edelson, “Dynamic Storage Reclamation in C++,” Master's Thesis, Univ. of California, Santa Cruz, UCSC-CRL-90-19, June 1990.

    Google Scholar 

  2. 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).

    Google Scholar 

  3. Daniel Ross Edelson & Ira Pohl, “A copying garbage collector for C++,” Usenix C++ Conference Proceedings, Washington, D.C.(Apr. 1991).

    Google Scholar 

  4. Joel F. Bartlett, “Compacting Garbage Collection with Ambiguous Roots,” Digital Equipment Corp., Western Research Center, WRL 88/2, Feb. 1988.

    Google Scholar 

  5. Joel F. Bartlett, “Mostly-Copying Collection Picks Up Generations and C++,” Digital Equipment Corp., Western Research Center, TN-12, Oct. 1989.

    Google Scholar 

  6. David L. Detlefs, “Concurrent Garbage Collection for C++,” Carnegie-Mellon Univ., CMU-CS-90-119, Pittsburgh, PA, May 1990.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. Bjarne Stroustrup, “The evolution of C++: 1985 to 1987,” USENIX C++ Workshop Proceedings (1987).

    Google Scholar 

  9. Hans-Juergen Boehm & Mark Weiser,“Garbage Collection in an Uncooperative Environment,” Software-Practice Experience 18 (Sept. 1988), 807–820.

    Google Scholar 

  10. Luca Cardelli, James Donahue, Lucille Glassman, Mick Jordan, Bill Kalsow & Greg Nelson, Modula-3 Report (revised), Digital Equipment Corp., Western Research Center, 1988.

    Google Scholar 

  11. Andrew W. Appel, “Runtime tags aren't necessary,” Lisp and Symbolic Computation 2 (1989), 153–162.

    Article  Google Scholar 

  12. 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.

    Article  Google Scholar 

  13. 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.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Yves Bekkers Jacques Cohen

Rights and permissions

Reprints 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

Publish with us

Policies and ethics