comp.lang.ada
 help / color / mirror / Atom feed
From: smize@Starbase.NeoSoft.COM (Samuel Mize)
Subject: Re: "Subtract C, add Ada"
Date: 19 Jan 1995 23:01:49 -0600
Date: 1995-01-19T23:01:49-06:00	[thread overview]
Message-ID: <3fng3t$2ak@Starbase.NeoSoft.COM> (raw)
In-Reply-To: 3fdcoi$chn@miranda.gmrc.gecm.com

In article <3fdcoi$chn@miranda.gmrc.gecm.com>,
R.A.L Williams <bill@valiant> wrote:
>
>Robert Dewar wrote..
>> Bill comments that for his points 3. and 4.
>> 
>>   3. uninitialised pointer access
>>   4. pointer references to local variables in defunct procedures
>> 
>> "The syntax of Ada .. does not really address 3. or 4."
>> 
>> Taking point 3, it is impossible to have an uninitialized pointer in Ada,
>> all pointers are initialized to null, and any attempt to use a null pointer,
>> i.e. to dereference it, will cause a constraint error. Seems like pretty
>> complete protection to me.
>
>Yes, you're right, Ada *guarantees* a run time crash, in C/C++ it's just very
>likely. ...

The rest of your post suggests that you understand this, but I will
point it out for the less-versed souls reading this newsgroup:

Ada does not guarantee a run-time crash.  It guarantees that the
program will identify, and respond to, the error.  If you have
exception handlers properly in place, they can do some default
action; e.g., you can drop to a degraded mode.  In C/C++, you
can (1) dereference a bad value and merrily use it (2) write to
an arbitrary address (e.g., the OS or your instruction pointer),
creating phantom bugs in other code (3) seg error (core dump).

Even a well-designed C program can provide these exciting
opportunities, since the occasional human error is unavoidable,
not to mention hardware failures.

In Ada, you have to make the original error, *and* not provide
a fall-back in your exception handlers.  Only if you do both
will you get a run-time crash.  Otherwise, you will get a
run-time performance degradation.

>likely. It's still not a compile time check so you're relying on the
>quality of your run time environment to tie down where the problem
>occurs. ...

True.  Wish we could solve the problem of uninitialized variables,
'cause then we'd know how to solve undecidable problems.

>occurs. Of course, in embedded systems you don't want *any* exceptions,
>no matter how cleanly you handle them!

Sure you do, if there was a programmer error, or a hardware glitch,
or a bad memory location, etc.  These are the things you don't want.
Given that you can't eliminate those, oh *boy* do you want exceptions,
given the alternative (core dump at 30,000 feet -- how do I reboot
my F-16?!?!?!?)

>... I was just trying to point out that using Ada is no substitute
>for good engineering practice in design and coding.
>

Very true.  I'm pointing out that Ada provides tools for good
engineering practice that are not available in C/C++ .

>
>
>Bill Williams
>

Sam Mize - smize@starbase.neosoft.com





       reply	other threads:[~1995-01-20  5:01 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3fdcoi$chn@miranda.gmrc.gecm.com>
1995-01-20  5:01 ` Samuel Mize [this message]
1995-01-20 22:07   ` "Subtract C, add Ada" Garlington KE
1995-01-24  5:02     ` R_Tim_Coslet
1995-02-10 13:49 R.A.L Williams
     [not found] <3gsr0e$oin@miranda.gmrc.gecm.com>
1995-02-07 16:58 ` Mark S. Hathaway
1995-02-08  7:39   ` Travis C. Porco
1995-02-08 16:07     ` Fred J. McCall
1995-02-08 21:30       ` Garlington KE
  -- strict thread matches above, loose matches on Subject: below --
1995-01-31  9:34 R.A.L Williams
1995-02-01 16:45 ` Charles H. Sampson
1995-01-23  8:49 R.A.L Williams
1995-01-25 23:18 ` Charles H. Sampson
1995-01-20 10:20 R.A.L Williams
1995-01-20 13:22 ` Renaud HEBERT
1995-01-24  3:35   ` David Moore
1995-01-25  5:38     ` Robert Dewar
1995-01-28 16:35     ` Jules
1995-01-29  8:06       ` Matt Kennel
1995-01-30  5:31       ` Michael Feldman
1995-01-31 22:22         ` David O'Brien
1995-01-24 20:23   ` N. Mellor
1995-01-25  8:50     ` Robb Nebbe
1995-01-25 14:19     ` John Volan
1995-01-26  5:07     ` Samuel Mize
1995-01-26 18:51       ` Mark A Biggar
1995-01-21 15:18 ` Robert Dewar
1995-01-21 21:03 ` David O'Brien
1995-01-23  3:09   ` Jay Martin
1995-01-23 12:50     ` Andrew McConnell
1995-01-24  0:54     ` Matt Kennel
1995-01-25 17:03       ` Norman H. Cohen
1995-01-26  1:13         ` Dr. Richard Botting
1995-01-26 14:32         ` Anders Juul Munch
1995-01-24  0:17   ` Bob Kitzberger
1995-01-23 20:46 ` Robert Firth
1995-01-24 14:25   ` Samuel Mize
1995-01-25  7:27     ` David O'Brien
1995-01-25 12:14     ` Robert A Duff
1995-01-25  5:57   ` David O'Brien
     [not found]     ` <3g9rf0$71k@Starbase.NeoSoft.COM>
1995-01-28 21:08       ` David O'Brien
1995-01-31 18:07         ` Samuel Mize
1995-02-01 10:23         ` Samuel Mize
1995-01-30  0:24     ` Mark S. Hathaway
1995-01-31  3:30       ` Jay Martin
1995-02-01 13:25         ` Jesper Kaagaard
1995-01-20  9:33 R.A.L Williams
     [not found] <3fgphd$sc3@rational.rational.com>
1995-01-20  5:51 ` RonaldS60
1995-02-07 13:55   ` Robert C. Soong
     [not found] <3etund$hnr@miranda.gmrc.gecm.com>
1995-01-12  9:56 ` Erik Svensson
1995-01-12 14:44 ` Norman H. Cohen
1995-01-13  1:51 ` David O'Brien
1995-01-13 12:38   ` Laurent Gasser
1995-01-13 20:53     ` John DiCamillo
     [not found]       ` <3f8fnf$c8p@gamma.ois.com>
1995-01-16 11:02         ` Matt Kennel
     [not found]         ` <milodD2IFpG.329@netcom.com>
1995-01-17 21:39           ` R. William Beckwith
     [not found]       ` <3fa11q$sdh@gnat.cs.nyu.edu>
1995-01-16 20:20         ` David Moore
1995-01-14  0:24     ` David O'Brien
1995-01-20  4:43     ` Samuel Mize
1995-01-21 20:28       ` David O'Brien
1995-01-22 21:12         ` Robert Dewar
1995-01-23 18:35         ` Norman H. Cohen
1995-01-23 19:18         ` John Cosby - The Coz
1995-01-24 14:11         ` Samuel Mize
1995-01-14 10:37   ` Keith Thompson
     [not found]     ` <3fcjgt$b0v@cronkite.seas.gwu.edu>
1995-01-16 18:47       ` Robert Dewar
     [not found]   ` <D2It0r.4rp@inmet.camb.inmet.com>
1995-01-17 14:11     ` Norman H. Cohen
1994-12-30 16:06 Mitch Gart
1995-01-03 19:04 ` whiting_ms@corning.com (Matt Whiting)
1995-01-05  4:31   ` Michael Feldman
1995-01-04 21:40 ` Fred McCall
1995-01-05  4:30   ` Richard Pattis
1995-01-05 16:07   ` Kevin Weise
1995-01-06 13:06   ` Jahn Rentmeister
1995-01-06 16:47     ` Laurent Gasser
1995-01-06 17:29       ` David Weller
1995-01-06 17:30         ` David Weller
1995-01-10 18:28       ` Bob Kitzberger
1995-01-06 23:36   ` Kenneth Almquist
1995-01-04 22:45 ` Jay M. Martin
1995-01-05  4:37   ` Michael Feldman
1995-01-05 18:08     ` Jay Martin
1995-01-05 23:56       ` Robert Dewar
1995-01-08  8:04         ` Jay Martin
1995-01-06  0:07       ` Michael M. Bishop
1995-01-10 21:30         ` Jay Martin
replies disabled

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