comp.lang.ada
 help / color / mirror / Atom feed
From: Brian May <bam@snoopy.apana.org.au>
Subject: Re: What is wrong with Ada?
Date: Fri, 13 Apr 2007 10:10:04 +1000
Date: 2007-04-13T10:10:04+10:00	[thread overview]
Message-ID: <sa4wt0h5e3n.fsf@margay.local> (raw)
In-Reply-To: wccwt0ho2fc.fsf@shell01.TheWorld.com

>>>>> "Robert" == Robert A Duff <Robert> writes:

    Robert> There is no way to be sure the code is bug free!  Not in
    Robert> any language.  Not using testing, nor any other method
    Robert> (including so-called proof of correctness).

The problem I have had in the past is code along the lines of:

rc = do_step_1(...);
if (!rc) {
   report_error("step 1 failed");
   return FALSE;
}

rc = do_step_2(...);
if (!rc) {
   report_error("step 2 failed");
   return FALSE;
}

rc = do_step_3(...);
if (!rc) {
   report_error("step 3 failed");
   return FALSE;
}

rc = do_step_4(...);
if (!rc) {
   report_error("step 4 failed");
   return FALSE;
}

...

(Yes, exceptions would also help to a limited extent; this code was
PHP4 which didn't support exceptions).

Running automatic tests might not be possible. For example, if the
steps involve creating a TCP connection. Maybe you could deliberately
bring the network down before running the test, but this may produce
the error in step 1 (this could be looking resolving a DNS name), not
step 2 (establishing the connection), step 3 (sending data), or step 4
(receiving expected response).

As a result, the code is properly tested, using manual techniques. The
first time.

Eventually, over time the code evolves. Maybe somebody does a search
and replace for /error/message/ and accidently changes one of those
report_error to report_message in the process, without noticing it. Or
maybe somebody decides that report_error needs another parameter, but
forgets to change the references in this file.

The result is that previously good code suddenly becomes bad with no
warning, it appears to work fine, and as far as I can tell it would be
difficult to test unless you have a compiler that will these issues
up.

All the cases I have had and can remember where good code becomes bad
like this are issues that any compiler could pick up on easily.

(another technique I use is to use a revision control system, and
review the changes I have made before committing them - this isn't
guaranteed but sometimes I do pick up changes I didn't intend to
commit).
-- 
Brian May <bam@snoopy.apana.org.au>



  parent reply	other threads:[~2007-04-13  0:10 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-09 20:31 What is wrong with Ada? martinbishop
2007-04-10  1:14 ` Chip and Allie Orange
2007-04-10  8:32   ` gautier_niouzes
2007-04-10 18:21     ` Chip Orange
2007-04-10  1:15 ` Jeffrey R. Carter
2007-04-10  9:02   ` Pascal Obry
2007-04-10 14:32     ` Markus E Leypold
2007-04-10 15:09       ` Pascal Obry
2007-04-10 15:39         ` Markus E Leypold
2007-04-10 16:12           ` Jean-Pierre Rosen
2007-04-10 17:31             ` Chad  R. Meiners
2007-04-10 18:24               ` Markus E Leypold
2007-04-10 18:28                 ` Ludovic Brenta
2007-04-10 20:22                   ` Markus E Leypold
2007-04-11  9:40               ` Jean-Pierre Rosen
2007-04-11 11:20                 ` Georg Bauhaus
2007-04-11 23:45                 ` Brian May
2007-04-12  7:40                   ` Jean-Pierre Rosen
2007-04-12 16:44                   ` kevin  cline
2007-04-12 17:32                     ` Pascal Obry
2007-04-12 16:46                   ` kevin  cline
2007-04-12 17:35                     ` Pascal Obry
2007-04-21  2:13                       ` adaworks
2007-04-21  9:49                         ` Simon Wright
2007-04-21 14:15                           ` Markus E Leypold
2007-04-22  7:38                             ` adaworks
2007-04-23  1:33                               ` Brian May
2007-04-21 18:33                           ` adaworks
2007-04-12 18:11                     ` Markus E Leypold
2007-04-16 14:25                       ` Bob Spooner
2007-04-16 14:50                         ` Markus E Leypold
2007-04-17  9:17                           ` Pascal Obry
2007-04-17 10:04                             ` Georg Bauhaus
2007-04-17 15:02                             ` Ed Falis
2007-04-17 15:48                               ` Pascal Obry
2007-04-17 20:53                                 ` Ludovic Brenta
2007-04-18  0:21                                 ` Jeffrey R. Carter
2007-04-18  8:16                                   ` Ludovic Brenta
2007-04-21  2:18                               ` adaworks
2007-04-12 18:47                   ` Robert A Duff
2007-04-12 19:39                     ` Dmitry A. Kazakov
2007-04-12 19:54                       ` Peter C. Chapin
2007-04-12 20:41                         ` Dmitry A. Kazakov
2007-04-14 19:56                         ` Chad  R. Meiners
2007-04-13  0:16                       ` Markus E Leypold
2007-04-14  7:01                         ` Dmitry A. Kazakov
2007-04-14 10:48                           ` Markus E Leypold
2007-04-15 13:41                             ` Dmitry A. Kazakov
2007-04-15 16:01                               ` Markus E Leypold
2007-04-15 17:51                                 ` Dmitry A. Kazakov
2007-04-15 21:41                                   ` Markus E Leypold
2007-04-15 22:00                                   ` Markus E Leypold
2007-04-16  8:26                                     ` Dmitry A. Kazakov
2007-04-16  9:04                                       ` Markus E Leypold
2007-04-17  7:58                                         ` Georg Bauhaus
2007-04-17  9:27                                           ` Dmitry A. Kazakov
2007-04-17 10:46                                             ` Markus E Leypold
2007-04-17 10:48                                             ` Markus E Leypold
2007-04-15 23:06                                   ` Markus E Leypold
2007-04-22 21:50                                   ` Markus E Leypold
2007-04-23 19:26                                     ` Dmitry A. Kazakov
2007-04-23 20:39                                       ` Ray Blaak
2007-04-24  8:39                                         ` Dmitry A. Kazakov
2007-04-24 16:43                                           ` Ray Blaak
2007-04-23 22:02                                       ` Markus E Leypold
2007-04-14 22:49                         ` Robert A Duff
2007-04-14 23:39                           ` Markus E Leypold
2007-04-23 21:16                         ` Larry Kilgallen
2007-04-23 21:21                           ` Ray Blaak
2007-04-23 22:15                             ` Markus E Leypold
2007-04-12 21:18                     ` Georg Bauhaus
2007-04-13  7:39                       ` Stuart
2007-04-13  9:05                         ` Georg Bauhaus
2007-04-13  0:10                     ` Brian May [this message]
2007-04-13  8:55                     ` Harald Korneliussen
2007-04-14 22:47                       ` Robert A Duff
2007-04-14 19:50                     ` Chad  R. Meiners
2007-04-14 22:52                       ` Robert A Duff
2007-04-14 19:28                 ` Chad  R. Meiners
2007-04-16  8:50                   ` Jean-Pierre Rosen
2007-04-16  9:18                     ` Dmitry A. Kazakov
2007-04-16  9:56                     ` Markus E Leypold
2007-04-16 16:45                     ` Robert A Duff
2007-04-17  9:05                       ` Jean-Pierre Rosen
2007-04-17 14:51                         ` Robert A Duff
2007-04-22  7:42                           ` adaworks
2007-04-10 18:15             ` Markus E Leypold
2007-04-20 16:34             ` adaworks
2007-04-10 19:44       ` Simon Wright
2007-04-10 20:43         ` Markus E Leypold
2007-04-10 22:02       ` Georg Bauhaus
2007-04-10 22:15         ` Markus E Leypold
2007-04-11  8:59           ` Georg Bauhaus
2007-04-20 16:25       ` adaworks
2007-04-20 20:35         ` Markus E Leypold
2007-04-21  5:51           ` adaworks
2007-04-25  0:10         ` Chad  R. Meiners
2007-04-10 15:59     ` Jeffrey R. Carter
2007-04-10 16:31       ` Dmitry A. Kazakov
2007-04-10 18:08         ` Markus E Leypold
2007-04-11 23:05         ` kevin  cline
2007-04-12  7:55           ` Dmitry A. Kazakov
2007-04-12 10:43           ` Peter C. Chapin
2007-04-12 13:04             ` Markus E Leypold
2007-04-13 10:46               ` Harald Korneliussen
2007-04-13 16:25                 ` Adam Beneschan
2007-04-14 23:41                 ` Markus E Leypold
2007-04-22  7:54           ` adaworks
2007-04-21 18:50         ` adaworks
2007-04-21 19:53           ` Dmitry A. Kazakov
     [not found]             ` <H5EWh.6302$H_5.612@newssvr23.news.prodigy.net>
2007-04-22  9:33               ` Dmitry A. Kazakov
2007-04-10 23:43     ` Brian May
2007-04-12 14:25       ` Bob Spooner
2007-04-13  0:22         ` Brian May
2007-04-23  2:25     ` Justin Gombos
2007-05-16  1:29     ` Adrian Hoe
2007-04-10  1:25 ` Brian May
2007-04-10  1:48   ` martinbishop
2007-04-10  8:33     ` gautier_niouzes
2007-04-10 14:58     ` Markus E Leypold
2007-04-10 19:05       ` Randy Brukardt
2007-04-10 20:27         ` Markus E Leypold
2007-04-12  1:18           ` Randy Brukardt
2007-04-12 13:02             ` Markus E Leypold
2007-04-12  8:47           ` Ada vendor FAQ (was: What is wrong with Ada?) Ludovic Brenta
2007-04-11 15:21 ` What is wrong with Ada? Jason King
2007-04-11 17:53   ` tmoran
2007-04-12 18:55   ` Alexander E. Kopilovich
2007-04-13  2:59     ` Jason King
2007-04-13  9:03       ` Georg Bauhaus
2007-04-14 15:28         ` Jason King
2007-04-16 16:48           ` Georg Bauhaus
2007-04-21 12:56 ` AJAskey
2007-04-21 13:50   ` jimmaureenrogers
2007-04-21 14:46     ` AJAskey
2007-04-21 15:43       ` Markus E Leypold
2007-04-23  1:37         ` Brian May
2007-04-21 15:48       ` Markus E Leypold
2007-04-21 21:42       ` jimmaureenrogers
     [not found]         ` <vzwWh.2452$Ut6.1591@newsread1.news.pas.earthlink.net>
2007-04-22  0:53           ` Markus E Leypold
2007-04-25  0:20     ` Chad  R. Meiners
2007-04-25  9:57       ` Markus E Leypold
2007-04-25 11:19         ` Georg Bauhaus
2007-04-25 11:54           ` Markus E Leypold
2007-04-25 13:24             ` Georg Bauhaus
2007-04-25 13:41             ` adaworks
2007-04-26  3:24       ` jimmaureenrogers
replies disabled

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