comp.lang.ada
 help / color / mirror / Atom feed
From: Jean-Pierre Rosen <rosen@EMAIL.ENST.FR>
Subject: Re: "Object" types vs. "Value" types
Date: 1996/03/26
Date: 1996-03-26T00:00:00+00:00	[thread overview]
Message-ID: <199603261342.OAA03546@email.enst.fr> (raw)

At 07:24 25/03/1996 -0500, you wrote:
>"1) "Value semantics" if Y:=X means that the contents of X is copied into Y.
>2) "Reference semantics" if Y:=X means that from now on, X and Y designate
>the same object."
>
>I think this can be a bit confusing, because it describes what are high
>level notions in terms of one particular implementation approach.
>
>Now of course, "as if" applies, so what is meant for example is that
>"Value Semantics" if Y := X means that it is AS IF the contents of X
> is copied into Y.
>
>[...] explanation of lazy assignment deleted
>
>The distinction is indeed critical, but no wonder you got confused talking
>about assignment if you immediately started talking about low level
>implementation details (use of pointers, and copying of values on
>assignment). You need to describe the difference at an operational
>semantic level, as I have done here, rather than at an implementation
>level.
>

Yes, of course, I was talking about abstract behaviour. Note that I
described it in terms  of *private* types (which is actually totally
irrelevant to the discussion), just to mean that I intended to described a
perceivable behaviour, not an implementation issue. That's also why I tried
to give an example of non-pointer reference semantics.

So the real issue is the abstract meaning of assignment. Note for example
that you can consider pointers as a "value" type (the value being the
designation of an object), or directly as a  "reference" type. Grossly, this
would be the  former case for a visible pointer type, and the latter for a
private pointer type.
+------------------------------------o-------------------------------------+
| P-mail:                            | E-mail: rosen@enst.fr               |
|   ADALOG - 27 avenue de Verdun     |    Tel: +33 1 46 45 51 12           |
|   92170 Vanves - FRANCE            |    Fax: +33 1 46 45 52 49           |
+------------------------------------o-------------------------------------+




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

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-03-26  0:00 Jean-Pierre Rosen [this message]
  -- strict thread matches above, loose matches on Subject: below --
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
1996-03-27  0:00   ` Richard A. O'Keefe
1996-03-27  0:00     ` Robert Dewar
1996-03-27  0:00 ` Michel Gauthier
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