From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,74b55538385b7366 X-Google-Attributes: gid103376,public From: Robert A Duff Subject: Re: Ada safety road Was: Which is right ... Date: 1999/06/08 Message-ID: #1/1 X-Deja-AN: 487159204 Sender: bobduff@world.std.com (Robert A Duff) References: <928083159.436.79@news.remarQ.com> <928174549.336.98@news.remarQ.com> <7iuqkc$ln6$1@nnrp1.deja.com> <928529202.956.79@news.remarQ.com> <928569312.951.42@news.remarQ.com> <7jb1l9$694$1@nnrp1.deja.com> <928703068.617.98@news.remarQ.com> <1999Jun6.181633.1@eisner> Organization: The World Public Access UNIX, Brookline, MA Newsgroups: comp.lang.ada Date: 1999-06-08T00:00:00+00:00 List-Id: Hyman Rosen writes: > If you follow the C++ newsgroups, you'll soon see that the same sort of > people who are confused about "erroneous" are confused about "undefined" > as well. They tend to mix it up with "implementation-defined", and get > quite indignant when no one offers them any sympathy :-) Yeah, and I think the lesson for language designers is to try pretty hard to avoid language features with unpredictable semantics. It's not feasible to *completely* avoid them, but Ada comes pretty close, and I would prefer to get a little bit closer still. > For waht it's worth, I like "erroneous" better - it conveys to me the > sense that I have done something wrong, whereas "undefined" conveys to > me the sense that the language has forgotten something. But there's a huge difference between doing something wrong and having the compiler nicely point that out (either at compile time or at run time), and having totally unpredictable behavior, and "erroneous" doesn't capture that distinction in its normal English sense. There are few enough erroneous cases in Ada, that it would have been reasonable to spell it out in a long phrase every time. Something like, "If , the program is incorrect. The implementation is not required to detect this error, neither at compile time nor at run time. If this error occurs, execution is totally unpredictable." And then put some verbiage in chapter 1 about how awful "totally unpredictable" really is. - Bob -- Change robert to bob to get my real email address. Sorry.