Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!usc!cs.utexas.edu!uunet!mcvax!kth!draken!tut!tucos!moj From: moj@cs.utu.fi (Matti Jokinen) Newsgroups: comp.lang.clu Subject: Re: Garbage collection and types. Message-ID: <908@tucos.UUCP> Date: 20 Jun 89 21:52:25 GMT References: <788@scaup.cl.cam.ac.uk> Reply-To: moj@utu.fi (Matti Jokinen) Distribution: inet Organization: University of Turku, Finland Lines: 40 Approved: moj@cs.utu.fi X-Posting-Number: 47 References to related work: %A Atkins, Martin C. %A Nackman, Lee R. %T The Active Deallocation of Objects in Object-Oriented Systems %J Software - Practice & Experience %V 18 %N 11 %P 1073-1089 %D Nov 1988 %X In object-oriented systems, it is often useful for objects to be allowed to carry out some action before they are deallocated. This can be done by defining a destroy method in the object's class, and arranging for the memory system to send a message invoking this method immediately before deallocating the object. This allows resources associated with the object to be returned to the system, limited cross-language garbage collection, and other, more complex, behaviour. During the execution of the destroy method it is possible for new references to objects to be created. Care must be taken that the garbage collector does not erroneously free such objects. Algorithms are presented to implement destroy methods in systems using reference counting and mark-scan garbage collection techniques. Preperties that are desirable in such systems are also discussed. %A Jokinen, Matti O. %T Customizable Garbage Collectors %J Information Processing Letters %V 30 %N 3 %D 13 Feb 1989 %P 115-118 %X Conventional garbage collectors retain components of data structures as long as the structure itself is accessible. In some applications, however, the components of a data structure are useful only if they are referred by external pointers. Recognition and deletion of useless components requires co-operation between the garbage collector and the user program: the analysis of accessibility is carried out by the garbage collector but user-defined routines are necessary to remove obsolete components from the structure. Two different co-operation mechanisms are discussed; the first can be used with garbage collectors based on reference counters, the other with mark-and-sweep collectors.