comp.lang.ada
 help / color / mirror / Atom feed
From: eachus@spectre.mitre.org (Robert I. Eachus)
Subject: Re: Does memory leak?
Date: 1995/03/30
Date: 1995-03-30T00:00:00+00:00	[thread overview]
Message-ID: <EACHUS.95Mar30172902@spectre.mitre.org> (raw)
In-Reply-To: 3kql6c$1b3@porte-de-st-ouen.ics.uci.edu

In article <hbaker-2903952208230001@192.0.2.1> hbaker@netcom.com (Henry Baker) writes:

   In article <3l6gf6$h05@theopolis.orl.mmc.com>, Theodore Dennison
   <dennison@escmail.orl.mmc.com> wrote:

   > I mean, if you don't deallocate what you allocate, your program will
   > leak memory no matter what language it is written in. This isn't an Ada
   > issue, it's an issue of sloppy coding.

 > Not necessarily true.  I've written lots and lots of Lisp programs, and
 > I think that I forgot to deallocate in almost all of them.  They worked
 > just fine.

 > (Of course I'm being facetious.  Lisp doesn't have a deallocate primitive,
 > because it has an automatic garbage collector, just like Modula and Eiffel.
 > Furthermore, garbage collection can't collect stuff that is still linked
 > to live objects, so you can still get a 'leak' this way.)

    The truth is somewhere in between, but a lot closer to Ted's
position.  It is ALWAYS sloppy coding to leave garbage lying around.
In some languages--including LISP and Ada 95--it is possible to get
the compiler/language to do most of the work for you, but it is still
the programmer's responsibility to see that garbage is visible as
such.

    In LISP, most garbage is automatically collected, but pathological
misuse of memory can slow performance to a crawl, and leaving pointers
to memory no longer in use lying around can quickly run you out of
memory.

    In Ada, most allocation and reclamation is from the user's point
of view automatically controlled by the compiler.  With a bit of
attention to scope entries and exits you can manage quite elaborate
structures without ever having to call an instance of
Unchecked_Deallocation.  Reorganize the code slightly and all of those
allocators are at the outermost scope level and your program dies a
nasty death.

    I find that memory management in both is about the same level of
effort.  A little bit of thinking about the real storage model is a
constant necessity, but it is very seldom an issue you spend any time
worring about.

--

					Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...




  parent reply	other threads:[~1995-03-30  0:00 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1995-03-22  9:06 Does memory leak? Duncan Sands
1995-03-22 12:04 ` Fred J. McCall
1995-03-23  0:37 ` Robert I. Eachus
1995-03-23 13:54   ` Arthur Evans Jr
1995-03-23 16:23     ` Robert I. Eachus
1995-03-24 21:08   ` Norman H. Cohen
1995-03-28  0:00     ` Theodore Dennison
1995-03-31  0:00     ` Kent Mitchell
1995-03-23  2:08 ` T. Owen O'Malley
1995-03-24 11:44   ` Robert Dewar
1995-03-27 14:01     ` Theodore Dennison
1995-03-29  0:00       ` John DiCamillo
1995-03-30  0:00         ` Robb Nebbe
1995-03-30  0:00         ` Theodore Dennison
1995-03-30  0:00       ` Henry Baker
1995-04-04  0:00         ` John Baker
1995-04-05  0:00           ` Ray Toal
1995-04-05  0:00           ` Pat Rogers
1995-04-05  0:00           ` Sverre Brubaek
1995-04-05  0:00           ` Tucker Taft
1995-04-06  0:00             ` Norman H. Cohen
1995-04-07  0:00               ` Tucker Taft
1995-03-30  0:00   ` Robert I. Eachus [this message]
1995-03-23 22:38 ` Tucker Taft
1995-03-24  1:57 ` Henry Baker
1995-03-24 17:30   ` Larry Kilgallen, LJK Software
1995-03-26  0:00     ` Henry Baker
1995-03-27 15:19     ` Norman H. Cohen
1995-03-27 14:35   ` Kennel
1995-03-24 12:29 ` Mike Meier
1995-03-24 10:46   ` Fred J. McCall
1995-03-24 15:44   ` David Weller
1995-03-25  1:55   ` kkrieser
  -- strict thread matches above, loose matches on Subject: below --
1995-03-27  9:36 Duncan Sands
replies disabled

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