comp.lang.ada
 help / color / mirror / Atom feed
From: hbaker@netcom.com (Henry G. Baker)
Subject: Re: Reference Counting (was Re: Searching Method for Incremental Garbage Collection)
Date: Tue, 13 Dec 1994 16:12:33 GMT
Date: 1994-12-13T16:12:33+00:00	[thread overview]
Message-ID: <hbakerD0rBox.6IG@netcom.com> (raw)
In-Reply-To: D0KDGE.31F@inmet.camb.inmet.com

In article <D0KDGE.31F@inmet.camb.inmet.com> bobduff@dsd.camb.inmet.com (Bob Duff) writes:
>In article <hbakerD08qGF.4qM@netcom.com>,
>Henry G. Baker <hbaker@netcom.com> wrote:
>>I just wanted to point out again that objects whose reference counts
>>are always one, and the programmer/compiler knows this, avoid the
>>usual overheads of reference counting.
>
>But it seems to me that in a language like Ada, if a given object only
>has one reference pointing to it, and that fact is known at compile
>time, then you would almost always declare that object as a normal
>stack-allocated object.  So it would not be in the heap in the first
>place, so reference counting would never occur.
>
>In other words, the optimization you mention seems useful in a language
>like Lisp, where everything's a pointer, but it seems irrelevant to Ada.
>Or, to put it differently, Ada compiler's already do this optimization
>-- the way you invoke it is to use an object instead of a
>pointer-to-object.

This optimization is quite useful in Ada -- perhaps more useful than
in Lisp because of the existence of multiple threads/tasks.  Whereas
stack-allocated objects are constrained by LIFO behavior, the objects
I describe have no such constraints.  Secondly, and probably much more
important in Ada, is the fact that an object whose reference count is
exactly one can be referenced by only one task/thread, and therefore
need _not_ be protected by a semaphore or protected record.

Therefore, these objects are ideal objects to be sent in messages
from one task/thread to another.

(I didn't come up with this stuff, but I highly recommend it.  The
"NIL" and "Hermes" languages for distributed computations out of IBM
Yorktown deal nearly exclusively with singly-referenced objects of
this sort.)

Henry Baker
Read (192.100.81.1) ftp.netcom.com:/pub/hb/hbaker/README for ftp-able papers.
WWW archive: ftp://ftp.netcom.com/pub/hb/hbaker/home.html
************* Note change of address ^^^        ^^^^
(It _is_ accessible, but Netcom is loaded; keep trying.)




  parent reply	other threads:[~1994-12-13 16:12 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CzHCvp.9rM@rheged.dircon.co.uk>
     [not found] ` <TFB.94Nov21091959@burns.cogsci.ed.ac.uk>
     [not found]   ` <RFB.94Nov27213114@cfdevx1.lehman.com>
     [not found]     ` <3be0mh$1p7@gamma.ois.com>
     [not found]       ` <3bfprn$okr@scipio.cyberstore.ca>
1994-11-29 21:27         ` Reference Counting (was Re: Searching Method for Incremental Garbage Collection) R. William Beckwith
1994-11-30  2:27           ` Henry G. Baker
1994-11-30 18:59           ` Hans Boehm
1994-12-01  3:20             ` R. William Beckwith
1994-12-01  3:51               ` R. William Beckwith
1994-12-01 13:59               ` Henry G. Baker
1994-12-02  4:26                 ` R. William Beckwith
1994-12-02 21:37               ` Hans Boehm
1994-12-03 15:17                 ` Henry G. Baker
1994-12-09 22:07                   ` Bob Duff
1994-12-11 23:59                     ` Gary McKee
1994-12-12  5:04                       ` Henry G. Baker
1994-12-12 12:46                         ` R. William Beckwith
1994-12-16 19:35                         ` Bob Duff
1994-12-17 20:36                           ` Robert Dewar
1994-12-20  5:24                           ` Henry G. Baker
1994-12-12  9:36                     ` Robb Nebbe
1994-12-13 16:12                     ` Henry G. Baker [this message]
     [not found]           ` <DAG.94Nov30090717@bellman.control.lth.se>
1994-11-30 16:39             ` David Weller
1994-11-30 17:58               ` Erik Naggum
1994-11-30 23:14                 ` Michael Feldman
1994-12-09 14:19                 ` Ada 95 is the name Tucker Taft
1994-12-09 22:33                   ` Pat Rogers
1994-12-11 18:59                     ` Jean D. Ichbiah
1994-12-11 20:05                       ` Pat Rogers
1994-12-16  1:01                         ` Bob Duff
1994-12-12 14:50                       ` Garlington KE
1994-12-13 21:48                         ` Tucker Taft
1994-12-14 12:44                         ` Gentle
1994-12-14 17:34                         ` Jean D. Ichbiah
1994-12-10 10:10                   ` Marc Wachowitz
1994-12-11 21:37                     ` Bob Duff
1994-12-02 23:41             ` Reference Counting (was Re: Searching Method for Incremental Garbage Collection) Bob Duff
1994-12-03  8:16               ` Bill Birch
     [not found]     ` <3be0mh$1p7@ga <3bii2g$kn2@news.parc.xerox.com>
1994-12-01  4:58       ` Kevin Warne
1994-12-02 21:58         ` Hans Boehm
     [not found] <D06r8x.JBy@inmet.camb.inmet.com>
1994-12-02 17:32 ` Henry G. Baker
1994-12-05 20:59   ` Robert Firth
1994-12-06 14:15     ` Robert Dewar
1994-12-04  1:06 ` Rick Busdiecker
1994-12-04 18:57   ` R. William Beckwith
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox