From: stefan-lucks@see-the.signature
Subject: Re: and then... (a curiosity)
Date: Fri, 5 Sep 2008 09:25:17 +0200
Date: 2008-09-05T09:25:17+02:00 [thread overview]
Message-ID: <Pine.LNX.4.64.0809050904150.27752@medsec1.medien.uni-weimar.de> (raw)
In-Reply-To: <48c0406c$0$1599$dbd4f001@news.euronet.nl>
On Thu, 4 Sep 2008, wrote:
> > Very strange that the Ada compiler is able to compile stuff if you write
> > "and then" instead of "and". Following your point, the designers of Ada
> > did overestimate the smartness of compilers. ;-)
>
> My objections are targeted at the thing that you propose (elsewhere called
> 1+2). That beast would either allow bugs to hide, or would require whole
> program analysis and perhaps mind-reading capabilties.
Firstly, I have been very clear that I didn't "propose" that.
Secondly, it is easy to implement. Replace "if A and B then ... else ...
end if" by:
declare
T_A := A;
begin
if T_A then
return B; -- may raise an exception
end if;
exception
when others =>
if B -- may raise an exception
then
raise; -- propagate the exception raised by A
else
return False;
end if;
end;
Hey, do you need mind-reading capabilities for that? I would consider
this an exercise for Students -- and a really easy one.;-)
Now, a really ugly issue is that both the evaluation of A and the
evaluation of B might raise an exeption, and we cannot re-raise both
exceptions. If not for other reasons, that suffices not to propagate that.
Well, one could raise a Program_Error in that case, but that is ugly
anyway. But note that even in Ada-as-it-is, it is not defined which of
both exceptions is raised!
> > is that the language "and" actually attempts to mimic the mathematical
> > "and".
>
> Yes, I agree and that is very unfortunate. But while we are at it. The
> 'designers' of logic made the same mistake: they have chosen an
> interpretation that difference from the word "and" in English.
OK, here we disagree. They wanted the "and", because they wanted to mimic
the mathematical and -- as much as the designers of most other languages.
As much as integer addition mimics the addition over the integers ...
> Quite possible. Perhaps a logic with:
>
> false and undefined <=> undefined and false <=> false
>
> If that is the definition, then that would be possible. But this is not the
> nave definition from Boolean algebra. This definition must be learned, but
> then you could equally well learn both well-defined definitions as from Ada.
>
> But you may still prefer above definition from a three-valued logic. I
> agree, the logic is well-defined and mathemtically elegant. However, it is
> an engineering disaster. We write millions of lines of code and we must deal
> with violations, exceptions, and validations errors.
The better it would be to focus on actual violations. Instead of hunting
an exception raised in fragments such as "if X/=0 and Y/X<Z".
--
------ Stefan Lucks -- Bauhaus-University Weimar -- Germany ------
Stefan dot Lucks at uni minus weimar dot de
------ I love the taste of Cryptanalysis in the morning! ------
next prev parent reply other threads:[~2008-09-05 7:25 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-29 21:06 and then... (a curiosity) mockturtle
2008-08-29 21:47 ` Samuel Tardieu
2008-08-30 21:28 ` Maciej Sobczak
2008-08-31 8:28 ` Georg Bauhaus
2008-08-31 23:21 ` Ray Blaak
2008-09-01 8:05 ` Martin Krischik
2008-09-01 17:56 ` Ray Blaak
2008-09-02 6:53 ` Martin Krischik
2008-09-02 14:56 ` Adam Beneschan
2008-09-02 16:28 ` Ray Blaak
2008-09-02 16:26 ` Ray Blaak
2008-09-02 20:50 ` Robert A Duff
2008-09-03 12:35 ` Brian Drummond
2008-09-03 15:56 ` Robert A Duff
2008-09-04 22:09 ` Brian Drummond
2008-09-03 21:01 ` Vinzent Hoefler
2008-09-02 14:50 ` Adam Beneschan
2008-08-29 22:28 ` Adam Beneschan
2008-08-30 1:06 ` Jeffrey R. Carter
2008-08-30 11:21 ` Dmitry A. Kazakov
2008-08-30 15:35 ` Peter C. Chapin
2008-09-02 15:06 ` Adam Beneschan
2008-09-02 3:41 ` Steve
2008-09-02 7:48 ` stefan-lucks
2008-09-02 8:57 ` Martin Krischik
2008-09-02 10:50 ` stefan-lucks
2008-09-02 10:33 ` Ludovic Brenta
2008-09-02 13:32 ` stefan-lucks
2008-09-02 12:53 ` Ludovic Brenta
2008-09-02 17:32 ` Georg Bauhaus
2008-09-03 13:14 ` stefan-lucks
2008-09-03 12:44 ` Dmitry A. Kazakov
2008-09-02 13:39 ` stefan-lucks
2008-09-02 13:40 ` stefan-lucks
2008-09-02 16:48 ` Dmitry A. Kazakov
2008-09-02 17:00 ` Keith Thompson
2008-09-02 19:15 ` Simon Wright
2008-09-02 20:37 ` Robert A Duff
2008-09-02 20:58 ` Jeffrey R. Carter
2008-09-02 21:08 ` Robert A Duff
2008-09-03 12:24 ` Pascal Obry
2008-09-02 22:34 ` Santiago Urueña
2008-09-03 5:56 ` Robert A Duff
2008-09-03 6:55 ` Santiago Urueña
2008-09-03 14:14 ` Adam Beneschan
2008-09-03 0:11 ` Randy Brukardt
2008-09-02 17:20 ` Georg Bauhaus
2008-09-04 1:05 ` Stephen Leake
2008-09-04 6:45 ` stefan-lucks
2008-09-04 7:35 ` Dmitry A. Kazakov
2008-09-04 12:04 ` stefan-lucks
2008-09-04 13:00 ` Dmitry A. Kazakov
2008-09-04 19:05 ` stefan-lucks
2008-09-04 20:28 ` Dmitry A. Kazakov
2008-09-05 6:57 ` stefan-lucks
2008-09-05 6:34 ` Ray Blaak
2008-09-05 14:14 ` Robert A Duff
2008-09-05 15:04 ` Dmitry A. Kazakov
2008-09-07 16:45 ` stefan-lucks
2008-09-05 15:14 ` Hyman Rosen
2008-09-05 15:59 ` Adam Beneschan
2008-09-05 16:10 ` Hyman Rosen
2008-09-07 16:36 ` stefan-lucks
2008-09-07 16:08 ` Gautier
2008-09-04 7:39 ` Karel Th�nissen
2008-09-04 12:12 ` stefan-lucks
2008-09-04 15:13 ` Georg Bauhaus
2008-09-04 15:16 ` Karel Th�nissen
2008-09-04 15:42 ` Dmitry A. Kazakov
2008-09-04 19:27 ` stefan-lucks
2008-09-04 19:43 ` stefan-lucks
2008-09-04 19:40 ` Georg Bauhaus
2008-09-05 7:00 ` stefan-lucks
2008-09-05 6:35 ` Ray Blaak
2008-09-04 20:06 ` Karel Th�nissen
2008-09-05 7:44 ` stefan-lucks
2008-09-05 6:41 ` Vinzent Hoefler
2008-09-04 20:09 ` Karel Th�nissen
2008-09-05 7:25 ` stefan-lucks [this message]
2008-09-05 6:37 ` Ray Blaak
2008-09-05 8:20 ` stefan-lucks
2008-09-05 13:57 ` Robert A Duff
2008-09-04 16:33 ` Dmitry A. Kazakov
2008-09-04 19:31 ` stefan-lucks
2008-09-04 19:59 ` Karel Th�nissen
2008-09-05 7:27 ` stefan-lucks
2008-09-05 8:38 ` Ludovic Brenta
2008-09-04 20:17 ` Dmitry A. Kazakov
2008-09-05 13:26 ` Robert A Duff
2008-09-05 13:49 ` Robert A Duff
2008-09-03 1:24 ` Stephen Leake
2008-09-03 3:31 ` tmoran
2008-09-03 13:22 ` stefan-lucks
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox