From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id QAA06441; Wed, 24 Mar 2004 16:00:22 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id QAA06965 for ; Wed, 24 Mar 2004 16:00:21 +0100 (MET) Received: from alex.baretta.com ([213.255.109.130]) by concorde.inria.fr (8.12.10/8.12.10) with ESMTP id i2OF0KHd002979 for ; Wed, 24 Mar 2004 16:00:20 +0100 Received: from baretta.com (localhost.localdomain [127.0.0.1]) by alex.baretta.com (8.12.8/8.12.8) with ESMTP id i2OF0hjx003608; Wed, 24 Mar 2004 16:00:44 +0100 Message-ID: <4061A29B.7080504@baretta.com> Date: Wed, 24 Mar 2004 16:00:43 +0100 From: Alex Baretta User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: it, en-us, en MIME-Version: 1.0 To: Yamagata Yoriyuki , Ocaml Subject: Re: [Caml-list] Delegation based OO References: <20040324.084300.18291498.yoriyuki@mbg.ocn.ne.jp> <20040324004548.GA19738@tallman.kefka.frap.net> <40616664.4040500@baretta.com> <20040324.231148.18590674.yoriyuki@mbg.ocn.ne.jp> In-Reply-To: <20040324.231148.18590674.yoriyuki@mbg.ocn.ne.jp> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at concorde by Joe's j-chkmail ("http://j-chkmail.ensmp.fr")! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; baretta:01 baretta:01 caml-list:01 yamagata:01 yoriyuki:01 object-based:01 expressive:01 jacques:01 ocaml's:01 inherit:01 alex:01 alex:01 essentially:02 objects:02 objects:02 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk X-Status: X-Keywords: X-UID: 349 Yamagata Yoriyuki wrote: > >>Delegation is no relative of inheritance. Inheritance is a syntactic >>property (essentially classes inherit code), whereas delegation is a >>semantic property: once one method is delegated by a proxy object to an >>executor object, the the visibility of the proxy is lost. The method is >>executed as if it were invoked directly on the executor. > > > There is a certain approach (object-based OO) which makes inheritance > to be a relation between objects (and get rid of the concept of class > altogether). In this approach, we can add, and modify mothods in > objects in run time. I confuse this with Alex proposal. "Object based object orientation" is simply horrible English. "Delegation based object orientation" is both more expressive of what really goes on behind the scenes and more appropriate from a linguistic standpoint. What you have in mind is JavaScript, a delegation based object-functional language with dynamic typing. What Jacques and I are discussing is a class-and-delegation based object-functional paradigm, an extension to ocaml's present class based object-functional approach. Alex ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners