[gclist] Design patterns in garbage collection

Stuart Yeates Stuart.Yeates@trimble.co.nz
Tue, 9 Jun 1998 09:22:04 +1200


I have recently completed a masters thesis at the University of
Canterbury, Christchurch, New Zealand, entitled "Design Patterns in
Garbage Collection." If anybody is interested in electronic copies of
this, or of the two papers (one workshop paper (PLoP97) and one refereed
conference paper (TOOLS Pacific 97), both focusing on the design
patterns side) derived from this work, let me know and I'll send you a
copy.

In simple terms the main useful conclusions of the work are (a) garbage
collection is about iteration and proxies (b) facades and adaptors are
important if you want to reuse your collector with other languages (c)
evaluating the performance of java programs is more difficult than it
may appear (I gave up and calculated upper bounds from the code).

Bibliographic entries for the items follow:

@InProceedings{yeates97b,
  author = 	 "Stuart A. Yeates  and Michel de Champlain",
  title = 	 "Design of a Garbage Collector Using Design Patterns",
  crossref =	 "tools97",
  pages =	 "77-92",
  annote =	 "We present six design patterns---Adapter, 
		  Facade,\ Iterator,\ Proxy,\ RootSet and
		  TriColour---found during a review of four different
		  garbage collectors. We also capture the design
		  decisions and trade-offs behind the low-level
		  implementation that characterises most garbage
		  collectors. A garbage collector for real-time
		  applications is then designed using the design
		  patterns. We discuss the selected algorithm and
		  various implementation techniques. Finally the
		  performance of the collector is examined using
		  formal methods. This paper presents a novel attempt
		  to "mine" and capture the essential design decisions
		  and trade-offs in garbage collectors. " 
}

@Proceedings{tools97,
  title = 	 "Proceedings of the twenty-fifth conference of
		  (TOOLS) Pacific.", 
  year = 	 1997,
  editor =	 "Christine Mingins and Roger Duke and Bertrand Meyer",
  organization = "ISE (Interactive Software Engineering)",
  address =	 "Melbourne",
  month =	 "November"
}

@MastersThesis{yeates97a,
  author = 	 "Stuart Yeates",
  title = 	 "Design Patterns in Garbage Collection",
  school = 	 "University of Canterbury",
  year = 	 1997,
  address =	 "Christchurch, New Zealand",
  type =	 "{M.Sc (Comp. Sci.)}",
  month =	 "June"
}


@InProceedings{yeates97,
  author = 	 "Stuart A. Yeates and Michel de Champlain",
  title = 	 "Design Patterns in Garbage Collection",
  crossref =	 "plop97",
  volume =	 "6 ``General Techniques''",
  abstract =	 "This paper describes several design patterns found
		  in garbage collectors. The patterns we present are
		  divided into two groups. The first group are two new
		  design patterns: {\it Rootset\/} and {\it
		  TriColour\/} that have been  used in the garbage
		  collection domain for up to 20 years. The second
		  group of patterns are reported in the GoF book, such
		  as {\it Adapter\/}, {\it Facade\/}, {\it Iterator\/}
		  and {\it Proxy\/},but we examine their use in the
		  garbage collection domain. By applying these
		  patterns, their solutions provide a less efficient,
		  but simpler and more flexible way of implementing
		  and reusing garbage collectors in programming
		  languages than current low-level methods.", 
  keywords =	 "object-oriented patterns garbage-collection"
}

@Proceedings{plop97,
  title = 	 "Proceedings of the 4th Annual Conference on the
		  Pattern Languages of Programs",
  year = 	 1997,
  booktitle =	 "PLoP '97",
  editor =	 "Robert S. Hanmer and Don Roberts",
  address =	 "Monticello, Illinois, USA",
  month =	 "2-5 September",
  note =	 "Published as technical report \# wucs-97-34 of
Washington University",
  annote =	 "Not a peer reviewed publication but a 'shepparded'
one.",
  keywords =	 "object-oriented patterns"
}

stuart

--
Stuart Yeates  --- stuart.yeates@trimble.co.nz
Trimble Navigation