Garbage Collection  Stuart Yeates neatly sums up Garbage
Collection like this:  In a garbage collected language, it's the
responsibility of each module to maintain It's data structures
and arrange for them to only contain those objects which that
module needs. when an object is no longer needed locally, It's
local references are extingished (deleted, copied over, popped
of the stack, etc).  In a non-garbage collected language, in
addition to determining doing this, each module must be aware of
whether any other (including those which haven't been written
yet) also accesses the object, and if not free it.  Garbage
collection thus reduces "the base problem of not having a handle
on the useful life of your objects" from a global one to a local
one.  Max Hailperin, Associate Professor of Computer Science, at
Gustavus Adolphus College, says:  In the garbage collected
system, you need to reason locally: each module needs to say
that "if I don't need this widget anymore, then I shouldn't hang
onto a reference to it