From: dewar@merv.cs.nyu.edu (Robert Dewar)
Subject: Re: Equality operator overloading in ADA 83
Date: 1997/04/27
Date: 1997-04-27T00:00:00+00:00 [thread overview]
Message-ID: <dewar.862141915@merv> (raw)
In-Reply-To: E973qr.89t@world.std.com
Bob Duff says
<<Why finite? The "essence" is that you have a bunch of mutually
exclusive possibilities, and that you cover all the cases, as in:
case To_Lower(X) is -- Not Ada!
when "begin" => Do_This;
when "end" => Do_That;
when others => Do_The_Other;
end case;
Ada's choice is to check those rules at compile time, but that's not
part of the "essence". It's a reasonable choice, though. Of course,
I've written "when others => raise ...;" sometimes. But either way, it
doesn't require forbidding strings and other types. That decision is
based on ease-of-implementation and ease-of-efficient-implementation, I
think. I'm not arguing that Ada should have this feature ...>>
Here I simply disagree, I find the semantics of checking that all cases
are covered (in the absence of others, one should almost always avoid the
use of others in case statements), to be a fundamental part of the design
semantics of the case statement, that distinguishes it in a fundamental
way from the switch of Algol-60 or in BCPL (I mention this because if I
remember right, BCPL does allow strings, and expect an implementation to
build a hash table where neessary).
In the case of strings, you would *always* have to use others if you want
to preserve this completeness property.
I think that extending case to handle strings would confuse this important
function of the case statement, and since it is only a matter of minor
syntactic sugar (you think one syntax looks better than another), I think
it is unimportant.
I still think that the utility is marginal in real programs, I looked for
the elsif pattern that would correspond to this case sequence, and found
*very* few examples in the millions of lines of code in our regression
suite (always an interesting place to look, since it represents code from
many places).
next prev parent reply other threads:[~1997-04-27 0:00 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-04-21 0:00 Equality operator overloading in ADA 83 Manuel Wenger
1997-04-22 0:00 ` Kevin Cline
1997-04-22 0:00 ` Mark A Biggar
1997-04-24 0:00 ` Keith Thompson
1997-04-22 0:00 ` Matthew Heaney
1997-04-22 0:00 ` Mats Weber
1997-04-22 0:00 ` Robert A Duff
1997-04-22 0:00 ` Mats Weber
1997-04-22 0:00 ` Matthew Heaney
1997-04-23 0:00 ` Mats Weber
1997-04-23 0:00 ` Robert A Duff
1997-04-24 0:00 ` Mats Weber
1997-04-24 0:00 ` Matthew Heaney
1997-04-25 0:00 ` Robert Dewar
1997-04-25 0:00 ` Matthew Heaney
1997-04-26 0:00 ` Robert Dewar
1997-04-26 0:00 ` Robert A Duff
1997-04-25 0:00 ` Robert Dewar
1997-04-25 0:00 ` Matthew Heaney
1997-04-26 0:00 ` Robert Dewar
1997-04-26 0:00 ` Fergus Henderson
1997-04-26 0:00 ` Robert A Duff
1997-04-26 0:00 ` Robert Dewar
1997-04-27 0:00 ` Robert Dewar
1997-04-24 0:00 ` Robert A Duff
1997-04-24 0:00 ` Robert Dewar
1997-04-25 0:00 ` Robert A Duff
1997-04-26 0:00 ` Nick Roberts
1997-04-26 0:00 ` Robert Dewar
1997-04-26 0:00 ` Matthew Heaney
1997-05-02 0:00 ` Nick Roberts
1997-05-04 0:00 ` Robert Dewar
1997-05-05 0:00 ` Mats Weber
1997-05-05 0:00 ` Robert Dewar
1997-05-06 0:00 ` Matthew Heaney
1997-05-06 0:00 ` Robert Dewar
1997-05-07 0:00 ` Tucker Taft
1997-05-05 0:00 ` Robert A Duff
1997-04-26 0:00 ` Robert A Duff
1997-04-26 0:00 ` Robert Dewar
1997-04-27 0:00 ` Robert A Duff
1997-04-26 0:00 ` Robert Dewar
1997-04-28 0:00 ` Simon Wright
1997-04-29 0:00 ` Robert I. Eachus
1997-04-29 0:00 ` Mats Weber
1997-05-01 0:00 ` Robert Dewar
[not found] ` <01bc571c$01f3ffc0$5de2b8cd@p5120.bda>
1997-05-03 0:00 ` Robert Dewar
1997-04-27 0:00 ` Robert Dewar [this message]
1997-04-27 0:00 ` Fergus Henderson
1997-04-27 0:00 ` Robert Dewar
1997-04-28 0:00 ` Fergus Henderson
1997-04-28 0:00 ` Robert Dewar
1997-04-25 0:00 ` Kevin Cline
1997-04-25 0:00 ` Mats Weber
1997-04-27 0:00 ` Robert Dewar
1997-04-29 0:00 ` Mats Weber
1997-04-25 0:00 ` Mats Weber
1997-04-25 0:00 ` Robert Dewar
1997-04-29 0:00 ` Mats Weber
1997-05-01 0:00 ` Robert Dewar
1997-04-25 0:00 ` Robert A Duff
1997-04-25 0:00 ` Mats Weber
1997-04-27 0:00 ` Geert Bosch
1997-04-28 0:00 ` Robert Dewar
1997-04-29 0:00 ` Mats Weber
1997-04-29 0:00 ` Robert A Duff
1997-04-29 0:00 ` Matthew Heaney
1997-05-02 0:00 ` Tucker Taft
1997-05-02 0:00 ` Robert Dewar
1997-05-02 0:00 ` Robert A Duff
1997-05-03 0:00 ` Robert Dewar
1997-05-01 0:00 ` Robert Dewar
1997-04-29 0:00 ` Matthew Heaney
1997-05-01 0:00 ` Robert Dewar
1997-04-28 0:00 ` Robert Dewar
1997-04-23 0:00 ` Robert Dewar
1997-04-24 0:00 ` Robert A Duff
1997-04-29 0:00 ` Mats Weber
1997-05-01 0:00 ` Robert Dewar
1997-04-24 0:00 ` Robert Dewar
1997-04-22 0:00 ` Matthew Heaney
1997-04-23 0:00 ` Mats Weber
1997-04-23 0:00 ` Robert A Duff
1997-04-25 0:00 ` Kevin Cline
1997-04-25 0:00 ` Matthew Heaney
1997-04-25 0:00 ` Robert A Duff
1997-04-25 0:00 ` Jon S Anthony
1997-04-27 0:00 ` Robert Dewar
1997-04-28 0:00 ` Robert I. Eachus
1997-04-29 0:00 ` Jon S Anthony
1997-04-26 0:00 ` Robert Dewar
1997-04-27 0:00 ` Matthew Heaney
1997-04-27 0:00 ` Robert A Duff
1997-04-25 0:00 ` Robert A Duff
1997-04-26 0:00 ` Robert Dewar
1997-04-26 0:00 ` Matthew Heaney
1997-04-24 0:00 ` Robert Dewar
1997-04-24 0:00 ` Robert A Duff
1997-04-25 0:00 ` Robert Dewar
1997-04-25 0:00 ` Matthew Heaney
1997-04-26 0:00 ` Robert Dewar
1997-04-26 0:00 ` Robert A Duff
1997-04-26 0:00 ` Robert Dewar
1997-04-26 0:00 ` Matthew Heaney
1997-04-27 0:00 ` Robert A Duff
1997-04-26 0:00 ` Robert Dewar
1997-04-26 0:00 ` Matthew Heaney
1997-04-27 0:00 ` Robert Dewar
1997-04-27 0:00 ` Robert A Duff
1997-04-26 0:00 ` Robert Dewar
1997-05-02 0:00 ` Nick Roberts
1997-05-04 0:00 ` Robert Dewar
1997-04-22 0:00 ` Philip Brashear
1997-04-22 0:00 ` Mats Weber
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox