Browse Prior Art Database

Object De-Reference as an Alternative to Garbage Collection

IP.com Disclosure Number: IPCOM000110823D
Original Publication Date: 1994-Jan-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 2 page(s) / 68K

Publishing Venue

IBM

Related People

Al-Karmi, AA: AUTHOR [+3]

Abstract

Reclaiming of memory space from objects that are no longer needed has been an important issue for most of the systems. This invention provides a simple and efficient solution to garbage collection, the term usually used for this issue, for objects in the OOPs technology.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Object De-Reference as an Alternative to Garbage Collection

      Reclaiming of memory space from objects that are no longer
needed has been an important issue for most of the systems.  This
invention provides a simple and efficient solution to garbage
collection, the term usually used for this issue, for objects in the
OOPs technology.

      One current method to implement garbage collection in an
object-oriented paradigm is to have the objects tagged or marked for
sweeping.  Such a process is usually done when the tool is attempting
to create an object and fails due to insufficient storage.
Object-oriented language like Smalltalk tends to offer this approach
by use of tag bits.  The tagging of integers, as known from compiler
optimization, interferes significantly with performance of integer
arithmetic and optimization of integer operations.  Clearly, compiler
support for these tags can reduce or eliminate this problem.
However, in C++, the programmer is responsible to remove these
unwanted objects by defining a destructor.  The destructor is called
whenever the variable is to be deleted.  The dyna-alloc objects
should be destroyed by the "delete" operator.  While explicit
de-allocation runs the dual risk of de-allocating objects that are
still referenced (leading to a program stop) and sometimes failing to
de-allocate objects that are inaccessible (leading to a waste of
space).  The tagging of objects also raises the level of coherence
required between the hardware design and the language optimization.

      This invention provides a flexibility to perform dynamic
garbage collection without interference to the optimization and
without the need to tag.  In order to avoid the problems of
de-allocating objects that are still referenced and those of
de-allocating inaccessible objects, all tool objec...