From: billwolf@hubcap.clemson.edu (William Thomas Wolfe,2847,)
Subject: Re: Garbage Collection
Date: 15 Dec 88 19:13:41 GMT [thread overview]
Message-ID: <3917@hubcap.UUCP> (raw)
In-Reply-To: 4159@enea.se
From article <4159@enea.se>, by sommar@enea.se (Erland Sommarskog):
> But you have to write the same boring code for [destroying]
> every ADT you implement!
If there were an ability to iterate over the fields of a
generic record parameter, standard generics for recursively
destroying certain classes of structures (e.g., n-ary trees)
could be written, thus automating the process to some extent.
The reason we must suffer writing the same code repeatedly is that
Ada does not permit us to abstract over arbitrary record structures.
> Let's say that you write a package for double-linked lists. You provide
> a procedure for taking an element out of a list. Should you free the
> memory allocated? You don't know because the caller may or may not still
> keep an reference to the element. He may be totally uninterested in it,
> but he may also want to insert it in another list.
When the list is instantiated, the user tells us what type of object
is to be kept in the list, and provides us with procedures for
assignment and equality. Objects are copied into and out of the list.
When an object is to be removed from the list, the local copy of the
object which is stored within the list is destroyed. Now if the
user wants, a pointer type can be supplied as the type of object
to be listed, and the user-supplied equality function can compare
the objects pointed to rather than the pointers themselves. The
user then bears all responsibility for managing the "external storage",
and can track his/her own references.
There is no implementor's dilemma here whatsoever.
Bill Wolfe
wtwolfe@hubcap.clemson.edu
next prev parent reply other threads:[~1988-12-15 19:13 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
1988-12-13 20:07 Garbage Collection Erland Sommarskog
1988-12-15 19:13 ` William Thomas Wolfe,2847, [this message]
-- strict thread matches above, loose matches on Subject: below --
1999-08-18 0:00 garbage collection Ronald Ayoub
1999-08-18 0:00 ` Pascal MALAISE
1999-08-20 0:00 ` David Botton
1999-08-18 0:00 ` Gisle S�lensminde
1999-08-18 0:00 ` tmoran
1999-08-18 0:00 ` Keith Thompson
1999-08-19 0:00 ` Tucker Taft
1999-08-19 0:00 ` Robert Dewar
1999-08-19 0:00 ` Robert Dewar
1999-08-20 0:00 ` tmoran
1999-08-20 0:00 ` Keith Thompson
1999-08-20 0:00 ` Matthew Heaney
1999-08-20 0:00 ` Keith Thompson
1999-08-21 0:00 ` Matthew Heaney
1999-08-21 0:00 ` Robert Dewar
1999-08-21 0:00 ` Matthew Heaney
1999-08-21 0:00 ` Robert Dewar
1999-08-21 0:00 ` Brian Rogoff
1999-08-21 0:00 ` Robert Dewar
1999-08-18 0:00 ` Robert I. Eachus
1999-08-19 0:00 ` Gautier
1999-08-19 0:00 ` Robert I. Eachus
1999-08-20 0:00 ` Keith Thompson
1999-08-20 0:00 ` Robert Dewar
1996-10-24 0:00 Garbage Collection H Brett Bolen
1989-01-10 19:16 Erland Sommarskog
1989-01-11 16:10 ` William Thomas Wolfe,2847,
1989-01-06 22:17 Erland Sommarskog
1989-01-08 18:40 ` William Thomas Wolfe,2847,
1989-01-09 3:56 ` Barry Margolin
1989-01-09 16:22 ` William Thomas Wolfe,2847,
1989-01-09 19:00 ` Barry Margolin
1989-01-10 2:50 ` William Thomas Wolfe,2847,
1989-01-11 9:22 ` Barry Margolin
1989-01-11 16:01 ` William Thomas Wolfe,2847,
1989-01-11 18:21 ` Barry Margolin
1989-01-12 2:43 ` William Thomas Wolfe,2847,
1989-01-15 7:14 ` Barry Margolin
1989-01-05 23:26 Erland Sommarskog
1988-12-31 0:04 Erland Sommarskog
1989-01-05 8:13 ` William Thomas Wolfe,2847,
1988-12-28 19:20 Erland Sommarskog
1988-12-30 0:52 ` Bill Wolfe
1988-12-26 23:37 Erland Sommarskog
1988-12-27 21:24 ` William Thomas Wolfe,2847,
1988-12-28 16:09 ` Snorri Agnarsson
1988-12-30 0:46 ` Bill Wolfe
1988-12-27 22:24 ` Bob Hathaway
1988-12-18 20:12 Erland Sommarskog
1988-12-20 19:04 ` Bill Wolfe
1988-12-07 15:22 Collective response to := messa ron
1988-12-11 19:11 ` Garbage Collection William Thomas Wolfe,2847,
1988-12-12 5:29 ` John Gateley
1988-12-12 18:19 ` William Thomas Wolfe,2847,
1988-12-13 1:02 ` Alexander Klaiber
1988-12-13 18:37 ` William Thomas Wolfe,2847,
1988-12-13 23:36 ` Alexander Klaiber
1988-12-14 3:26 ` William Thomas Wolfe,2847,
1988-12-14 17:16 ` Stephe Leake
1988-12-15 14:43 ` Thomas P. Morris
1988-12-14 23:30 ` John Gateley
1988-12-15 19:25 ` William Thomas Wolfe,2847,
1988-12-19 16:12 ` John Gateley
1988-12-20 19:34 ` Bill Wolfe
1988-12-13 20:22 ` William Thomas Wolfe,2847,
1988-12-14 6:40 ` Richard A. O'Keefe
1988-12-14 17:43 ` William Thomas Wolfe,2847,
1989-01-02 17:51 ` ryer
1989-01-05 8:31 ` William Thomas Wolfe,2847,
1989-01-06 16:58 ` ryer
1989-01-08 19:24 ` William Thomas Wolfe,2847,
[not found] <145@krafla.rhi.hi.is>
[not found] ` <272@fang.ATT.COM>
1988-03-29 13:47 ` From Modula to Oberon Denis Fortin
1988-03-30 15:32 ` Lawrence Crowl
1988-03-30 22:41 ` Hans Boehm
1988-03-31 6:27 ` Garbage Collection Richard Harter
1988-03-31 19:49 ` Hans Boehm
1988-04-01 5:43 ` Richard Harter
1988-04-01 18:43 ` Hans Boehm
1988-04-04 23:14 ` 00704a-Liber
1986-03-16 22:24 Garbage collection "Alexander L. Wolf"
[not found] <1979@mit-eddi.UUCP>
[not found] ` <2144@mit-eddie.UUCP>
1984-06-18 19:28 ` Abstraction In Ada Jon Mauney
1984-06-22 7:47 ` Doug Alan
1984-06-25 2:15 ` brad
1984-07-17 10:34 ` garbage collection Eric Smith
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox