<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META content=text/html;charset=ISO-8859-15 http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18812"></HEAD>
<BODY bgColor=#ffffff text=#000000>
<DIV><FONT size=2 face=Arial>Hi,</FONT></DIV>
<DIV><FONT size=2 face=Arial>IMO, an object is something that preserves identity
under the pov</FONT></DIV>
<DIV><FONT size=2 face=Arial> of an objerver (the</FONT><FONT size=2
face=Arial> self that reflectOn/know/named "the object");</FONT></DIV>
<DIV><FONT size=2 face=Arial> for me, an object can</FONT><FONT size=2
face=Arial> be open in state and behavior (change in</FONT></DIV>
<DIV><FONT size=2 face=Arial> an unpredictable way)</FONT><FONT size=2
face=Arial> and still be "that object".</FONT></DIV>
<DIV><FONT size=2 face=Arial>Returning to your question about identity,
imho it is "something" in the</FONT></DIV>
<DIV><FONT size=2 face=Arial> observer, that reflect on a context
through time (here the</FONT></DIV>
<DIV><FONT size=2 face=Arial> virtue of the object-subject relation).
The object</FONT></DIV>
<DIV><FONT size=2 face=Arial> preserve the identity in the context
known to that</FONT></DIV>
<DIV><FONT size=2 face=Arial> observer (under a pov)</FONT></DIV>
<DIV><FONT size=2 face=Arial>The observer name the object (acording to
convenience/role in</FONT></DIV>
<DIV><FONT size=2 face=Arial> the "understanding"/control of the
context).</FONT></DIV>
<DIV><FONT size=2 face=Arial>Using a number for the name is primitive but can be
understood</FONT></DIV>
<DIV><FONT size=2 face=Arial> as</FONT><FONT size=2 face=Arial> a
valid name.</FONT></DIV>
<DIV><FONT size=2 face=Arial>In short, the ID is a name that is defined by the
observer when</FONT></DIV>
<DIV><FONT size=2 face=Arial> it is detected a presistence in time of
something taking a</FONT></DIV>
<DIV><FONT size=2 face=Arial> role (a model of the observer is the place
to implement it).</FONT></DIV>
<DIV><FONT size=2 face=Arial>No need to have an unique ID for each object,
because the</FONT></DIV>
<DIV><FONT size=2 face=Arial> universal pov it asumes is a
gravitator(innocent) and hide</FONT></DIV>
<DIV><FONT size=2 face=Arial> diversity of observers,</FONT><FONT size=2
face=Arial> the same way as an object realty</FONT></DIV>
<DIV><FONT size=2 face=Arial> is hidden if one assumes a</FONT><FONT size=2
face=Arial> system is defined by one source code.</FONT></DIV>
<DIV><FONT size=2 face=Arial>cheers,</FONT></DIV>
<DIV><FONT size=2 face=Arial>Ale.</FONT></DIV>
<DIV><FONT size=2 face=Arial> </FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="FONT: 10pt arial; BACKGROUND: #e4e4e4; font-color: black"><B>From:</B>
<A title=trygver@ifi.uio.no href="mailto:trygver@ifi.uio.no">Trygve
Reenskaug</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=squeak-dev@lists.squeakfoundation.org
href="mailto:squeak-dev@lists.squeakfoundation.org">The general-purpose Squeak
developers list</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Saturday, August 22, 2009 7:39
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [squeak-dev] Re: Newbie
Question (about OOPs, maybe) (sorry)</DIV>
<DIV><BR></DIV>Hi All,<BR>IMO, every object has three essential properties:
Identity, State, and Behavior. In Smalltalk, State and Behavior are defined by
the object's flattened class hierarchy. The Object ID is not explicitly
available. I have am using 'asOop', hoping I get a unique value. But I
realize that I am skating on thin ice because its comment confuses me with
implementation details. It doesn't say what it means by 'pointer', so there is
still hope:<BR><BR><I>Object>>asOop<BR> "Primitive.
Answer a SmallInteger whose value is half of the receiver's
<BR> object pointer (interpreting object pointers as 16-bit
signed
quantities)..."</I><BR><BR><I>ProtoObject>>identityHash<BR>
"Answer a SmallInteger whose value is related to the receiver's
identity..."<BR></I>This is pretty vague, but the term 'Hash' indicates that
many objects can share the same value. So it is clearly cannot be used as the
objectID.<BR><BR>The Morph>>printOn: implementation is less than ideal
because it should apply to all objects, not only Morphs. Also, it should use
'asOop' rather than 'identityHash' to let us hope for uniqueness.<BR><BR>In
short:<BR>
<UL>
<LI>Smalltalk claims to be object oriented and I regard it as a serious flaw
that the object ID is not explicitly visible.
<LI>We probably need a 64-bit VM to represent it properly, e.g., using the
standardized definition of OID, but a value that is guaranteed to be unique
within the current set of objects would be acceptable..
<LI>I regard it as a bug that Object>>printOn: does not present some
kind of object ID. </LI></UL>Cheers<BR>--Trygve<BR><BR><BR>On 2009.08.20
06:37, K. K. Subramaniam wrote:
<BLOCKQUOTE cite=mid:200908201007.18504.subbukk@gmail.com type="cite"><PRE wrap="">On Wednesday 19 Aug 2009 11:07:29 am Ronald Spengler wrote:
</PRE>
<BLOCKQUOTE type="cite"><PRE wrap="">Ah, so the GC in the VM swizzles the pointers out from under you.
<A class=moz-txt-link-freetext href="http://lists.squeakfoundation.org/pipermail/squeak-dev/1999-June/006170.htm">http://lists.squeakfoundation.org/pipermail/squeak-dev/1999-June/006170.htm</A>
l
</PRE></BLOCKQUOTE><PRE wrap=""><!---->This is the classic dilemma between name as an identifier and name as a
locator. The word "pointer" connotes the latter but gets used widely in the
former sense in Smalltalk code. Object Identifier (oid) is unambiguous but
doesn't sound half as cool as oop ;-).
Subbu
</PRE></BLOCKQUOTE><BR>
<DIV class=moz-signature>-- <BR>
<META name=ProgId content=Word.Document>
<META name=Generator content="Microsoft Word 10">
<META name=Originator content="Microsoft Word 10"><LINK rel=File-List
href="TrygveSignature-filer/filelist.xml"><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:DrawingGridHorizontalSpacing>6 pt</w:DrawingGridHorizontalSpacing>
<w:DrawingGridVerticalSpacing>6 pt</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>3</w:DisplayVerticalDrawingGridEvery>
<w:UseMarginsForDrawingGridOrigin/>
<w:DoNotShadeFormData/>
<w:Compatibility>
<w:FootnoteLayoutLikeWW8/>
<w:ShapeLayoutLikeWW8/>
<w:AlignTablesRowByRow/>
<w:ForgetLastTabAlignment/>
<w:LayoutRawTableWidth/>
<w:LayoutTableRowsApart/>
<w:UseWord97LineBreakingRules/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<STYLE>@page {mso-page-border-surround-header: no; mso-page-border-surround-footer: no; }
@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 35.4pt; mso-footer-margin: 35.4pt; mso-paper-source: 0; }
P.MsoNormal {
        MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: "Times New Roman"
}
LI.MsoNormal {
        MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: "Times New Roman"
}
DIV.MsoNormal {
        MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: "Times New Roman"
}
SPAN.SpellE {
        mso-style-name: ""; mso-spl-e: yes
}
SPAN.GramE {
        mso-style-name: ""; mso-gram-e: yes
}
DIV.Section1 {
        page: Section1
}
</STYLE>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
        {mso-style-name:"Vanlig tabell";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
<DIV class=Section1>
<P class=MsoNormal><SPAN class=SpellE><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt"
lang=EN-GB>Trygve</SPAN></SPAN><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt" lang=EN-GB>
Reenskaug<SPAN> </SPAN>mailto: <SPAN
class=SpellE><A class=moz-txt-link-abbreviated
href="mailto:trygver@ifi.uio.no">trygver@ifi.uio.no</A></SPAN></SPAN><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt"><O:P></O:P></SPAN></P>
<P class=MsoNormal><SPAN class=SpellE><SPAN class=GramE><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt"
lang=EN-GB>Morgedalsvn</SPAN></SPAN></SPAN><SPAN class=GramE><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt" lang=EN-GB>.</SPAN></SPAN><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt" lang=EN-GB> 5A
<SPAN> </SPAN><A
class=moz-txt-link-freetext
href="http://heim.ifi.uio.no/~trygver">http://heim.ifi.uio.no/~trygver</A><O:P></O:P></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-FAMILY: Arial; FONT-SIZE: 10pt">N-0378
Oslo<SPAN>
</SPAN>Tel: (+47) 22 49 57 27<O:P></O:P></SPAN></P>
<P class=MsoNormal><SPAN class=SpellE><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt">Norway</SPAN></SPAN><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt"><O:P></O:P></SPAN></P></DIV></DIV>
<P>
<HR>
<P></P><BR></BLOCKQUOTE></BODY></HTML>