comp.lang.ada
 help / color / mirror / Atom feed
From: mjsilva697@earthlink.net (Mike Silva)
Subject: Re: Have you ever had a bug caused by...
Date: 22 Oct 2001 23:26:34 -0700
Date: 2001-10-23T06:26:34+00:00	[thread overview]
Message-ID: <27085883.0110222226.76e006a2@posting.google.com> (raw)
In-Reply-To: usncbuz01.fsf@ctwd0143.fitlinxx.com

David Bolen <db3l@fitlinxx.com> wrote in message news:<usncbuz01.fsf@ctwd0143.fitlinxx.com>...
> mjsilva697@earthlink.net (Mike Silva) writes:
> 
> > While discussing (er, pushing) Ada with some C-coding co-workers today
> > I asked a question to which I knew the answer (always the best kind!):
> >  "Have you ever had a bug caused by accessing off the end of an
> > array?"  Well, of course, they all had to say yes.  Then I started
> > thinking of other bugs that they would have to admit to, and which
> > wouldn't occur in Ada.  Nothing new here (Ada prevents many bugs...),
> > but I thought it would be fun and useful to develop a group list as an
> > Ada advocacy tool.  For example:
> 
> I'm curious as to how Ada _prevents_ such bugs.  Are you saying that
> no Ada programmer has ever had a bug caused by walking off the end of
> an array either?
> 
> I'll buy that Ada will catch that error more quickly than in C, and
> probably help isolate the problem more quickly.  And even that by
> using attributes such as Range, Low and High that you can write more
> robust code to avoid the issue (which is no small benefit).  But given
> that you can still compute indices and then attempt to dereference
> based on those computations, there has to be the occasional bug that
> is introduced through the use of indices that overflow the array.
> 
> And that's different from saying "wouldn't occur in Ada" ... there's a
> difference between better handling of the bug, and not having the bug
> ever occur.  Or to put it another way, if I have a bug that creates
> this condition (or say, tries to set a value outside its range, as in
> another example), generating an exception - even if handled - still
> implies the bug exists.
> 
> Some of the suggested items appear to be language checks that are
> completely possible at compile time, for which I'd buy the "can't
> happen" argument.  But any issues that can occur at runtime and
> require runtime checks and exceptions don't, IMHO, prevent bugs, but
> simply act to make it easier to diagnose and manage them when they do
> occur.

You're right -- I was imprecise in my language, and Ada has enough
real advantages that it doesn't need hyperbole.  As you say, some
types of bugs are completely prevented, others should never happen
when using the proper idioms (such as the use of attributes), while
others are simply caught at a much earlier stage.  Each of these
outcomes is vastly preferable to one of those horrible "six degrees of
separation" bugs in C where it can take days or weeks to trace back
from discovered effect to root cause.

Mike



  parent reply	other threads:[~2001-10-23  6:26 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-20  1:14 Have you ever had a bug caused by Mike Silva
2001-10-20  1:44 ` Larry Kilgallen
2001-10-20  2:12   ` James Rogers
2001-10-20  9:15     ` Robert*
2001-10-20 11:20       ` Bertrand Augereau
2001-10-20 11:30         ` Matthew Woodcraft
2001-10-20 12:39           ` Robert*
2001-10-20 13:09           ` Bertrand Augereau
2001-10-20 21:21         ` Robert Dewar
2001-10-22 15:58     ` Ted Dennison
2001-10-20 19:07 ` Dr Adrian Wrigley
2001-10-21  1:09   ` Mike Silva
2001-10-21 12:05     ` Larry Kilgallen
2001-10-22 14:48 ` Marin David Condic
2001-10-22 17:03   ` Martin Dowie
2001-10-22 17:22     ` Marin David Condic
2001-10-23  6:13   ` Mike Silva
2001-10-22 21:49 ` David Bolen
2001-10-22 22:14   ` Marin David Condic
2001-10-23  0:52     ` Robert*
2001-10-23 13:30       ` Marin David Condic
2001-10-25  9:45         ` John English
2001-10-25 15:23           ` Marin David Condic
2001-10-25 18:17             ` Ted Dennison
2001-10-25 15:36           ` Ted Dennison
2001-10-25 16:09       ` Simon Wright
2001-10-25  2:16     ` David Bolen
2001-10-23  6:26   ` Mike Silva [this message]
2001-10-23  9:40     ` mike
2001-10-23 10:09       ` Preben Randhol
2001-10-23 13:48         ` Marin David Condic
2001-10-23 15:45           ` Ted Dennison
2001-10-23 17:08             ` Marin David Condic
2001-12-04 11:09               ` Harri J Haataja
2001-10-24 12:44             ` Marc A. Criley
2001-10-24 18:55               ` Jeffrey Carter
2001-10-24 19:34                 ` Marin David Condic
2001-10-26  4:18                   ` (Off topic:) Quality Anders Wirzenius
2001-10-25  9:36 ` Have you ever had a bug caused by John English
2001-10-25 15:41   ` Wes Groleau
2001-10-25 17:57     ` Have you ever had a bug OOPS Wes Groleau
2001-11-13  2:07       ` David Thompson
replies disabled

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