Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!brunix!twl
From: twl@brunix (Ted "Theodore" (W) Leung)
Newsgroups: comp.sw.components
Subject: Re:  Re: Garbage Collection & ADTs
Message-ID: <16270@brunix.UUCP>
Date: 26 Sep 89 14:32:39 GMT
References: <900@scaup.cl.cam.ac.uk> <6530@hubcap.clemson.edu> <909@scaup.cl.cam.ac.uk> <62342@tut.cis.ohio-state.edu> <599@hsi86.hsi.UUCP>
Sender: news@brunix.UUCP
Reply-To: twl@boojum.UUCP (Ted "Theodore" (W) Leung)
Organization: Brown University Department of Computer Science
Lines: 28

In article <599@hsi86.hsi.UUCP> wright@hsi.com (Gary Wright) writes:
>It is interesting to note the advances that have been made in 
>optimizing compilers.  Perhaps a sufficiently smart compiler for a language
>that supports GC can figure out when GC can be avoided?  That is to say,
>the compiler can notice when the last reference to an object will be lost 
>and can explicity "dispose" of the object.  In general, the compiler won't
>be able to determine this (thus GC) but for the simple cases, why not?

There has been some work done in this area.....

@incollection{NDJSSM81,
	author = "Neil D. Jones and Steven S. Muchnick",
	title = "Flow Analysis and Optimization of LISP-like Structures",
	booktitle = "Program Flow Analysis: Theory and Applications",
	publisher = "Prentice Hall",
	year = "1981",
	editor = "Steven S. Muchnick and Neil D. Jones",
	chapter = "4",
	pages = "102-131"
}


Jones and Muchnick present some techniques which allow exactly the
kinds of determinations which you are talking about.
--------------------------------------------------------------------
Internet/CSnet: twl@cs.brown.edu 	| Ted Leung
BITNET: twl@BROWNCS.BITNET		| Box 1910, Brown University
UUCP: uunet!brunix!twl			| Providence, RI 02912