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: jcm@hgc.edu (James McKim) Subject: Re: Real OO Date: 1996/05/14 Message-ID: <1996May14.190322.18222@merlin.hgc.edu>#1/1 X-Deja-AN: 154815691 sender: usenet@merlin.hgc.edu (Action News Central) references: organization: The Hartford Graduate Center newsgroups: comp.lang.eiffel,comp.lang.ada,comp.object Date: 1996-05-14T00:00:00+00:00 List-Id: In article Richard Riehle writes: >On Thu, 9 May 1996, Don Harrison wrote: > >> Juergen Schlegelmilch writes: >> >> :Yes, dispatch failure for multiple dispatch indicates broken polymorphism. >> :The design of inheritance hierarchies is often not seen in the light of >> :the Liskov Substitution Principle, >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> Could you (or somone) explain what this is? Sorry, I'm a bit ignorant. > > > You might want to look at a paper by Liskov, "Subtype Hierarchy and > Implementation Hierarchy," Proceedings of the ACM Conference on > Object-Oriented Programming, 1987 As I recall, this paper assumes only the simplest changes in the subtypes, namely additional features and reimplementation of features for (usually) efficiency reasons. She does not (in this paper) deal with the way the _semantics_ of features may change in the subtype. > > > Though the substitutability principle is often attributed to Liskov, > it is also given treatment in a paper from Wegner and Zdonic, > "Inheritance as an Incremental Modification Mechanism" published in > the Proceedings of the European Conference on > Object-Oriented Programming, 1988. > > An important overview of this subject is Cardelli and Wegner, "On > Understanding Types, Data Abstraction, and Polymorphism," ACM > Computing Surveys, Number 17, 1985. 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. The earliest paper that I know deals with this issue in the now accepted way (weaker preconditions, stronger postconditions, stronger invariants) is [Meyer, 1987] B. Meyer, Eiffel: "Programming for Reusability and Extendibility", ACM SIGPLAN Notices, 85-94, February, 1987. which is also perhaps the first generally published discussion of Eiffel. Bertrand does not couch the discussion in terms of subtypes and substitutabily, and, of course, it is now well known that Eiffel's inheritance mechanism is not a safe subtyping mechanism, but he got the assertion part right, and to my knowledge he was the first to do so. Anyone know of an earlier ref. on this subject? [..] > > Richard Riehle > Hope this helps, -- Jim -- *------------------------------------------------------------------------------* Jim McKim (860)-548-2458 Co-editor of Eiffel Outlook Internet: jcm@hgc.edu Subscribe early and often!