comp.lang.ada
 help / color / mirror / Atom feed
From: gauthier@unilim.fr (Michel Gauthier)
Subject: Re: "Object" types vs. "Value" types
Date: 1996/03/26
Date: 1996-03-26T00:00:00+00:00	[thread overview]
Message-ID: <gauthier-2603961247040001@164.81.60.62> (raw)
In-Reply-To: 199603250902.KAA21800@email.enst.fr

In article <199603250902.KAA21800@email.enst.fr>, Jean-Pierre Rosen
<rosen@EMAIL.ENST.FR> 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
----------          ----------          ----------          ----------




  parent reply	other threads:[~1996-03-26  0:00 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-03-25  0:00 "Object" types vs. "Value" types Jean-Pierre Rosen
1996-03-25  0:00 ` Robert Dewar
1996-03-26  0:00 ` Michel Gauthier [this message]
1996-03-27  0:00   ` Richard A. O'Keefe
1996-03-27  0:00     ` Robert Dewar
1996-03-27  0:00 ` Michel Gauthier
  -- strict thread matches above, loose matches on Subject: below --
1996-03-26  0:00 Jean-Pierre Rosen
1996-03-15  0:00 Comments on generic stack? Michel Gauthier
1996-03-20  0:00 ` "Object" types vs. "Value" types John G. Volan
1996-03-20  0:00   ` John DiCamillo
1996-03-21  0:00     ` Comments on generic stack? John G. Volan
1996-03-21  0:00   ` "Object" types vs. "Value" types david scott gibson
1996-03-25  0:00     ` John G. Volan
1996-03-28  0:00       ` david scott gibson
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox