Results 1 -
3 of
3
Comparing Two Garbage Collectors for C++
, 1992
"... Our research is concerned with compiler-independent, tag-free garbage collection for the C++ programming language. This paper presents a mark-and-sweep collector, and explains how it ameliorates shortcomings of a previous copy collector. The new collector, like the old, uses C++'s facilities for cre ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Our research is concerned with compiler-independent, tag-free garbage collection for the C++ programming language. This paper presents a mark-and-sweep collector, and explains how it ameliorates shortcomings of a previous copy collector. The new collector, like the old, uses C++'s facilities for creating abstract data types to define a tracked reference type, called roots, at the level of the application program. A programmer wishing to utilize the garbage collection service uses these roots in place of normal, raw pointers. We present a detailed study of the cost of using roots, as compared to both normal pointers and reference counted pointers, in terms of instruction counts. We examine the efficiency of a small C++ application using roots, reference counting, manual reclamation, and conservative collection. Coding the application to use garbage collection, and analyzing the resulting efficiency, helped us identify a number of memory leaks and inefficiencies in the original, m...
The Case for Garbage Collection in C++
- Workshop on Garbage Collection in Object-Oriented Programming Languages, in conjunction with OOPSLA/ECOOP '90
, 1990
"... Introduction C++ represents an imperative based hybrid Object-Oriented Programming Language [ES90]. It integrates low-level and high-level programming language features in an attempt to benefit from both. The low-level features allow the programmer to write run-time efficient code. The high-level f ..."
Abstract
- Add to MetaCart
Introduction C++ represents an imperative based hybrid Object-Oriented Programming Language [ES90]. It integrates low-level and high-level programming language features in an attempt to benefit from both. The low-level features allow the programmer to write run-time efficient code. The high-level features support code-reuse through inheritance, and the development of large, maintainable codes through encapsulation. The base language C is a well designed system implementation language, and as such is easily compilable for most traditional architectures into highly efficient run-time object code. The OOP features are derived from SIMULA67 [B + 73]. They allow the programmer to design modules that in the Platonic sense capture the characteristics of the abstraction to be programmed about [Poh91,Str90]. Garbage Collection is a technique for automatically identifying and deallocating inaccessible dynamically allocated memory. It is so useful, and perhaps, so diff

