comp.lang.ada
 help / color / mirror / Atom feed
From: "Chad R. Meiners" <crmeiners@hotmail.com>
Subject: Re: memory leakages with Ada?
Date: Sun, 17 Mar 2002 02:22:47 -0500
Date: 2002-03-17T02:22:47-05:00	[thread overview]
Message-ID: <a71ffd$5c9$1@msunews.cl.msu.edu> (raw)
In-Reply-To: dcfe911f.0203162143.327902b7@posting.google.com


"Kevin Cline" <kcline@optelnow.net> wrote in message
> Dereferencing nil is just as fatal to program execution.  The only
advantage
> is that it is more easily debugged because the crash is immediate.
> Any code that keeps invalid pointers around, whether null or not, is
> poorly crafted.  Good programmers don't much care about the state
> of a pointer variable after delallocation because the variable
> is either going to be reassigned immediately or is going out of scope.

While it is true that dereferencing a null pointer will raise a
constraint_error exception, exceptions can be handled gracefully and null
pointers can be guarded against.  Pointers off to nowhere are very difficult
to detect in a general manner.

Your assertion about good programmers not caring about the state of a
pointer, however, is false.  For example, let's say we want to build a hash
table of complex objects.  This can be accomplished via an array of pointers
to the given object type.  Here is a case where we will want to reuse the
pointers (although not necessarily immediately) since we might delete and
add a bunch of objects throughout the program's lifetime.   Here we can
clearly use the state of the pointers to hold valuable information about the
table.  Is this use improper?  No, this is actually a case where using
pointers is the right way to go about solving the problem.   Other examples
of null pointers being useful are linked lists and tree data structures.

This is one of the many reasons why I like Ada.  The designers did a very
good job with access types.  I have never encountered a situation where I
felt I was being forced by the language to use a pointer improperly in the
six years I have been programming with it.  I have found that Ada's design
is embedded with much wisdom; if you ask, "Why does Ada do/have this?", the
answer often makes you a better programmer.

-CRM





  reply	other threads:[~2002-03-17  7:22 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-03-14 14:07 memory leakages with Ada? Calvin Ow
2002-03-14 14:31 ` Larry Kilgallen
2002-03-14 20:42   ` Nick Roberts
2002-03-14 21:11     ` Larry Kilgallen
2002-03-14 21:07   ` Anh_Vo
2002-03-14 20:12 ` Marin David Condic
2002-03-15  9:37   ` John McCabe
2002-03-15 12:55     ` Pat Rogers
2002-03-16  4:36       ` Will
2002-03-16  4:53         ` Pat Rogers
2002-03-16 12:21         ` Larry Kilgallen
2002-03-16  9:13       ` DPH
2002-03-16 14:38         ` Pat Rogers
2002-03-16 14:56           ` DPH
2002-03-16 15:51             ` Preben Randhol
2002-03-16 16:39               ` DPH
2002-03-16 19:51                 ` Pat Rogers
2002-03-16 20:40                   ` DPH
2002-03-17 19:31                   ` Richard Riehle
2002-03-17 21:49                     ` Pat Rogers
2002-03-17 22:02                       ` Pat Rogers
2002-03-18 22:32                         ` Randy Brukardt
2002-03-18 22:47                           ` Pat Rogers
2002-03-18  7:22                       ` Richard Riehle
2002-03-18 17:35                     ` Marin David Condic
2002-03-17 16:26                 ` Steve Doiel
2002-03-16 20:18         ` Robert A Duff
2002-03-16 20:36           ` DPH
2002-03-15 14:20     ` Marin David Condic
2002-03-18 17:54       ` Warren W. Gay VE3WWG
2002-03-18 19:54         ` Hyman Rosen
2002-03-18 20:34           ` Larry Kilgallen
2002-03-18 21:18             ` Hyman Rosen
2002-03-18 21:45               ` Larry Kilgallen
2002-03-20  1:19                 ` Hyman Rosen
2002-03-20 17:06                   ` Warren W. Gay VE3WWG
2002-03-20 17:56                     ` Larry Kilgallen
2002-03-20 17:48                   ` Marin David Condic
2002-03-22  0:25               ` Matthew Woodcraft
2002-03-22  5:10                 ` Hyman Rosen
2002-03-18 22:18         ` Marin David Condic
2002-03-20 20:49         ` Bertrand Augereau
2002-03-21  4:31         ` Will
2002-03-15 16:00     ` Hyman Rosen
2002-03-15 21:59       ` Chad R. Meiners
2002-03-17  5:43         ` Kevin Cline
2002-03-17  7:22           ` Chad R. Meiners [this message]
2002-03-18  4:09             ` Kevin Cline
2002-03-18 16:54               ` Chad R. Meiners
2002-03-18 17:38             ` Warren W. Gay VE3WWG
2002-03-19  9:21               ` John McCabe
2002-03-19 17:11                 ` Warren W. Gay VE3WWG
2002-03-19 17:16                   ` Pat Rogers
2002-03-19 17:51                   ` David C. Hoos
2002-03-19 18:20                   ` Frank J. Lhota
2002-03-19 23:43                     ` Mark Johnson
2002-03-20 15:09                       ` Frank J. Lhota
2002-03-17  7:27           ` Hyman Rosen
2002-03-18  3:52             ` Kevin Cline
2002-03-18  5:37               ` Hyman Rosen
2002-03-15 17:41   ` Kevin Cline
2002-03-15 18:00     ` Marin David Condic
2002-03-15 18:08     ` Hyman Rosen
2002-03-16 10:15       ` Kevin Cline
2002-03-14 23:14 ` Kevin Cline
2002-03-15  3:20 ` Steve Doiel
2002-03-15  9:32   ` John McCabe
2002-03-15 15:46     ` Hyman Rosen
2002-03-15 17:29     ` Kevin Cline
2002-03-15 15:48   ` Jeffrey Carter
2002-03-16  3:05     ` Steve Doiel
2002-03-16 20:19       ` Jeffrey Carter
2002-03-15 17:25   ` Kevin Cline
2002-03-15 18:03     ` Hyman Rosen
2002-03-16 10:07       ` Kevin Cline
2002-03-17  3:00         ` Hyman Rosen
2002-03-15  9:27 ` John McCabe
  -- strict thread matches above, loose matches on Subject: below --
2002-03-20  6:25 Christoph Grein
2002-03-20 16:35 ` Hyman Rosen
replies disabled

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