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: mheaney@ni.net (Matthew Heaney) Subject: Re: Building blocks (Was: Design By Contract) Date: 1997/09/09 Message-ID: #1/1 X-Deja-AN: 270929388 References: <5ulurp$aj8$1@miranda.gmrc.gecm.com> <5un58u$9ih$1@gonzo.sun3.iaf.nl> <5v0bph$n98$2@miranda.gmrc.gecm.com> Organization: Estormza Software Newsgroups: comp.lang.ada,comp.lang.eiffel Date: 1997-09-09T00:00:00+00:00 List-Id: In article , Brian Rogoff wrote: >>In fact the Eiffel exception mechanism is superior to the Ada one >> because it is built on a theoretical model of software engineering. Can any of the Eiffel guys explain this a bit more? I'm curious what is meant by a "theoretical model of software engineering." Can someone post some references to the theory behind the Eiffel exception mechanism? I've always been curious about the semantics of exception propagation, because it doesn't correspond to anything in pure math (or does it?). If I divide x by 0 on paper, I can strug my shoulders and say, "Oh well, division by 0 isn't defined," but on a computer, I have to do _something_. I just finished the Gordon book on denotational semantics, and even he just sort of says "return {error}"; maybe the Stoy book has something more. I read the Luckham paper, and he presented the idea that an assertion be associated with each exception raised by a subprogram, to describe the state when the exception is propagated. It would be cool if you could check at compile time that all exceptions were being handled by the client, and that only the exceptions advertised by a supplier get raised (and only in the specified state). Maybe that's the Eiffel model already. -------------------------------------------------------------------- Matthew Heaney Software Development Consultant (818) 985-1271