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,c52c30d32b866eae X-Google-Attributes: gidfac41,public X-Google-Thread: 1108a1,c52c30d32b866eae X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,2ea02452876a15e1 X-Google-Attributes: gid103376,public From: jhd@herold.franken.de (Joachim Durchholz) Subject: Re: Real OO Date: 1996/05/20 Message-ID: <69DSvGyk3RB@herold.franken.de>#1/1 X-Deja-AN: 156522645 references: newsgroups: comp.lang.eiffel,comp.lang.ada,comp.object Date: 1996-05-20T00:00:00+00:00 List-Id: jcm@hgc.edu wrote 14.05.96 on Re: Real OO: > It's been a while since I've looked at these, but again I don't believe > either paper addresses how the semantics of a subtype may vary from that > of its supertype. Well, in Eiffel, it is easy to consider preconditions a part of the signature, so the Substitution Principle easily extends to them. In fact, > the now accepted way (weaker preconditions, stronger > postconditions, stronger invariants) can be derived from the SP if it is stated as "a section of code must remain valid if an object is replaced with an object of a descendant type". > it is now well known that Eiffel's > inheritance mechanism is not a safe subtyping mechanism, Do you mean the catcalls (Changed Availability or Type of routines / routine parameters / attributes)? These have been fixed (or are in the process of being fixed - might depend on exact version of compiler and language definition). I'd be very interested in any remaining holes. > but he got the > assertion part right, and to my knowledge he was the first to do so. And this is what I value most highly in Eiffel. I don't know of any other commercially available OO language that does it right (PLEASE, tell me I'm wrong!) -Joachim -- Looking for a new job. Resume available on request.