Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!zephyr.ens.tek.com!tekcrl!tekgvs!jans
From: jans@tekgvs.LABS.TEK.COM (Jan Steinman)
Newsgroups: comp.sw.components
Subject: Re: Garbage Collection & ADTs (w/bib)
Message-ID: <6024@tekgvs.LABS.TEK.COM>
Date: 29 Sep 89 18:38:13 GMT
Organization: Tektronix Inc., Beaverton, Or.
Lines: 25

<..A good garbage collector will reclaim loops of ANY complexity IF they are 
garbage.  I don't have the best reference handy, but page 682 of "Smalltalk-80 
The Language and its Implementation" may give you a hint as to how such GC 
works.>

Smalltalk-80, as described in the "Blue Book", uses a combination of reference 
counting and mark-sweep.  Few, if any, modern implementations use such an 
inefficient scheme.  "Generation scavenging" seems to be the latest and 
greatest, and it also reclaims arbitrarily long cyclic garbage.  It has some 
drawbacks if loops contain garbage of widely differing ages, but evidence 
suggests (at least in Smalltalk) that cyclic garbage tends to be contemporary.

* Caudill, P "A Third Generation Smalltalk-80 Implementation", OOPSLA 86 
Proceedings, Oct 1986.
* Deutsch, LP "An Efficient Incremental Automatic Garbage Collector", CACM Sep 
1976.
* Lieberman, H "A Real-Time Garbage Collector Based on the Lifetimes of 
Objects", CACM, Jun 1983.
* Ungar, D "Generation Scavenging: A Non-disruptive High Performance Storage 
Reclamation Algorithm", SIGSOFT/SIGPLAN Proceedings, Apr 1984.

							   Jan Steinman - N7JDB
						  Electronic Systems Laboratory
					Box 500, MS 50-370, Beaverton, OR 97077
						(w)503/627-5881 (h)503/657-7703