From: "Karel Th�nissen" <thoenissen@garabit.nl>
Subject: Re: and then... (a curiosity)
Date: Thu, 4 Sep 2008 09:39:38 +0200
Date: 2008-09-04T07:39:43+00:00 [thread overview]
Message-ID: <48bf90bf$0$30032$dbd4d001@news.euronet.nl> (raw)
In-Reply-To: Pine.LNX.4.64.0809040835270.21815@medsec1.medien.uni-weimar.de
<stefan-lucks@see-the.signature> schreef in bericht
news:Pine.LNX.4.64.0809040835270.21815@medsec1.medien.uni-weimar.de...
>> What is the "logic level"?
>> I you mean "abstract Boolean logic, like in college", then there is no
>> such thing as Constraint_Error, nor side effects. So of course it
>> gives you a bad understanding of programming languages.
Exactly. Programming is not mathematics and the resemblance is so close that
it is dangerous.
> Actually, there is Constraint_Erorr, though under a different name. ;-)
> If your Boolean function is allowed to raise an exception, this is the
> same as returning "undefined" in three-valued logic, as I pointed out in
> another posting in this mail.
> This is the point I had been trying to make in all my postings to this
> thread: "False and Undefined" is False, not Undefined!
That depends on the type of ternary logic that you consider. If the third
value stands for 'unknown' then:
false and unknown => false
However, if the third value is used for contradiction, then:
false and contradiction => contradiction
That is what Ada does with exceptions.
> Thus, "if X/=0 and Y/X<100" should go into the else-branch, instead of
> raising an exception.
> The shortcut version "if X/=0 and then Y/X<100" does exactly the right
> thing.
That would be a very bad idea. With that in place, an exception raised by a
simple programming error, /any/ programming error, would give control to the
else-branch. Nice if the exception is the one that you know that could
happen, otherwise disasterous. It has become a exception handler in
disguise, but one that confuses falsity with exceptions. If this is what you
want you should invent a 3-branched selection statement.
I agree with other posters that the choice between conditional and
unconditional AND should be explicit and documented. One may not like the
syntax chosen in Ada, but it is the only sensible design.
Groeten, Karel
next prev parent reply other threads:[~2008-09-04 7:39 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 [this message]
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
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