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: fac41,f66d11aeda114c52 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,f66d11aeda114c52 X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Building blocks (Was: Design By Contract) Date: 1997/09/14 Message-ID: #1/1 X-Deja-AN: 272444384 References: <5ulurp$aj8$1@miranda.gmrc.gecm.com> <5un58u$9ih$1@gonzo.sun3.iaf.nl> <5v0bph$n98$2@miranda.gmrc.gecm.com> Organization: New York University Newsgroups: comp.lang.ada,comp.lang.eiffel Date: 1997-09-14T00:00:00+00:00 List-Id: <> It is not at all the case that the abstract notion of design by contract dictates the design of the detailed syntax of the exception mechanism. Of course (as anyone familiar with the Ada design process are very aware), the Ada design of specifications is entirely focussed on the issue of what elements of the interface contract belong in the syntax of the language and what are best left to comments. The same statement can of course be made in Eiffel, so the theoretical bases, or more accurately, the fundamental design principles, are in fact very similar. The specific issue in Ada of whether it should be part of the syntax of the language to specify the exceptions that can be raised is of course one that was extensively discussed, and the quite deliberate decision was made that it is unhelpful to require these to be stated in the syntax. The reason is that there are too many exceptions (Storage_Error, or the various IO errors if any IO is done, or other application defined system wide exceptions) which would be named all over the place and create clutter. Note that Program_Error would also have to be named almost everwhere because of the Access Before Elaboration (ABE) considerations. SO there is no question of a presence or lack of theory here, rather it is a pragmatic issue of what should and should not go into the syntactical interface. Eiffel generally decides to put more into the syntax, but there is no real evidence to suggest that this is a good thing, it's mostly a subjective issue.