Text preview for : CSL-93-4_Safe_Efficient_Garbage_Collection_for_C++.pdf part of xerox CSL-93-4 Safe Efficient Garbage Collection for C++ xerox parc techReports CSL-93-4_Safe_Efficient_Garbage_Collection_for_C++.pdf



Back to : CSL-93-4_Safe_Efficient_G | Home

Safe, Efficient Garbage Collection for
C++
John R. Ellis and David L. Detlefs
Safe, Efficient Garbage Collection for C++


John R. Ellis and David L. Detlefs*


CSL-93-4 September 1993 [P93-00018]

Copyright @ 1993 by Digital Equipment Corporation and Xerox Corporation
This work may not be copied or reproduced in whole or in part for any commercial purpose.
Permission to copy in whole or in part without payment of fee is granted for nonprofit educational
and research purposes provided that all such whole or partial copies include the following: a notice
that such copying is by permission of the Systems Research Center of Digital Equipment Corporation
and the Palo Alto Research Center of Xerox Corporation, both in Palo Alto, California; an
acknowledgment of the authors and individual contributors to the work; and all applicable portions of
the copyright notice. Copying, reproducing, or republishing for any other purpose shall require a
license with payment of fee to the Systems Research Center and Xerox. All rights reserved.

CR Categories and Subject Descriptors: 0.3.3 Dynamic storage management
[Programming Languages], 0.3.4 Processors [Programming Languages]
General terms: garbage collection, storage management, languages

Additional Keywords and Phrases: debugging, safety, C++



* Systems Research Center, Digital Equipment Corporation




Xerox Corporation
XEROX Palo Alto Research Center
3333 Coyote Hill Road
Palo Alto, California 94304
Abstract
We propose adding safe, efficient garbage collection to C++, eliminating the
possibility of storage-management bugs and making the design of complex,
object-oriented systems much easier. This can be accomplished with almost no
change to the language itself and only small changes to existing
implementations, while retaining compatibility with existing class libraries.
Our proposal is the first to take a holistic, system-level approach,
integrating four technologies. The language intelface specifies how
programmers access garbage collection through the language. An optional safe
subset of the language automatically enforces the safe-use rules of garbage
collection and precludes storage bugs. A variety of collection algorithms are
compatible with the language interface, but some are easier to implement and
more compatible with existing C++ and C implementations. Finally, code-
generator safety ensures that compilers generate correct code for use with
collectors.

John R. Ellis and David L. Detlefs
Contents
1. Introduction ...