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: 103376,82c7a4dae672250f X-Google-Attributes: gid103376,public From: gauthier@unilim.fr (Michel Gauthier) Subject: Re: "Object" types vs. "Value" types Date: 1996/03/26 Message-ID: #1/1 X-Deja-AN: 144331418 references: <199603250902.KAA21800@email.enst.fr> organization: Universite de Limoges newsgroups: comp.lang.ada Date: 1996-03-26T00:00:00+00:00 List-Id: In article <199603250902.KAA21800@email.enst.fr>, Jean-Pierre Rosen wrote: >> This issue is discussed at length in my book, and in several of Michel >> Gauthier's publications (I don't have the reference at hand, but he will >> tell you if you want). The initial publication about objects versus values is by Bruce MacLennan in a Sigplan paper in 1982 (and a 1981 printed school course). Later, and without knowledge of this paper, I have studied the issue, and hesitated for a long time to publish such heretic ideas. The first papers were published during my sabbatical half-year in Lausanne. You can refer to a paper at Ada-UK 1993, but the major contribution remains in French only (Michael Feldman, Ed Schonberg and Dan Roy have a copy, if you work in the same universities). I can make a PostScript copy ftp-available if requested. Essential idea : equality has no meaning. Only non-distinguishability has. Therefore, anything kept in a data structure (variable, file, stack,...) and later retrieved must have this non-distinguishability property. Moreover, this property must be a precondition of any such generic construct, independently of the language kind of the type. Note : this is mathematically the only possible definition of equality. Identities do not have the non-distinguishability property. They are better defined as purely abstract entities, that require conversion functions to and from some suitable value type. These conversion functions can be straightforward for some cases and very complex for others. Some programming consequences of the distinction : - lists organize objects only, and I am not sure that they are objects (they are not values) - stacks and queues organize values only, and are objects - implementing stacks with lists implies some (generally hidden) handling of objects designed to keep values - lists of values are sequences rather than really lists I guess a paper in Ada Letters could be a good idea. Phil, are you interested ? I am convinced that the distinction between objects and values is essential for the future of programming. I try to convince other people. ---------- ---------- ---------- ---------- Michel Gauthier / Laboratoire d'informatique 123 avenue Albert Thomas / F-87060 Limoges telephone +33 () 55457335 [or ~ 7232] fax +33 () 55457315 [or ~7201] ---------- ---------- ---------- ---------- La grande equation de la fin du siecle : windows-X = Mac-Y The main end-of-century equation : windows-X = Mac-Y ---------- ---------- ---------- ---------- Si l'an 2000 est pour vous un mysticisme stupide, utilisez la base 9 If you feel year 2000 a stupid mystic craze, use numeration base 9 ---------- ---------- ---------- ----------