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=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC 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: donh@syd.csa.com.au (Don Harrison) Subject: Re: Real OO Date: 1996/05/08 Message-ID: #1/1 X-Deja-AN: 153641797 sender: news@assip.csasyd.oz references: organization: CSC Australia reply-to: donh@syd.csa.com.au newsgroups: comp.lang.eiffel,comp.lang.ada,comp.object Date: 1996-05-08T00:00:00+00:00 List-Id: Jon S Anthony writes: :In article donh@syd.csa.com.au (Don Harrison) writes: : :[Whole bunch of stuff...] : :> As the equivalent Eiffel shows, the term 'classwide operation' is misleading. :> An operation may be dispatching WRT one parameter but classwide WRT another. :> It is more accurate to speak of classwide operands rather than classwide :> operations. : :I'm not clear on why you bring the Eiffel in to support your claim that :the term "classwide operation" is misleading. The examples were primarily for the benefit of anyone still confused about what 'classwide' operations are. : In fact, the Eiffel seems :completely irrelevant. There _is_ a (small) problem with the terminology :here as you are indicating - specifically when there are mixtures of :specific type and classwide type formals in an operation's signature. I think it's important to recognise that the nature of an operation is different according to the perspective with which it is viewed. If viewed from the standpoint of an actual parameter supplied for a dispatching formal operand, it is realised (for Eiffel, at least) that an implementation specifically tailored for it will be invoked. If viewed from the standpoint of an actual parameter supplied for a classwide formal operand, it is realised that the implementation invoked will handle it generically (using the common characteristics of the family of classes specified by the formal). This distinction is vitally important in the design of singly dispatched software. :However, it does seem perfectly clear to say O is a classwide operation :when only classwide formals are given. For example, : :procedure O1 (X: A'Class); : :function O2 (X: A'Class; Y: B'Class) return C'Class; Agree. : :/Jon :-- :Jon Anthony :Organon Motives, Inc. :1 Williston Road, Suite 4 :Belmont, MA 02178 : :617.484.3383 :jsa@organon.com : /// Don. (o o) =-=-=-=-=-=-=-=oOO=-(_)-=OOo=-=-=-=-=-=-=-=-