Newsgroups: comp.object,comp.lang.smalltalk,comp.lang.c++,comp.lang.misc
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!oitnews.harvard.edu!purdue!lerc.nasa.gov!magnus.acs.ohio-state.edu!math.ohio-state.edu!jussieu.fr!univ-lyon1.fr!in2p3.fr!oleane!plug.news.pipex.net!pipex!dish.news.pipex.net!pipex!lade.news.pipex.net!pipex!iol!imci2!newsfeed.internetmci.com!swrinde!sdd.hp.com!hplabs!hplextra!hplb!cdollin!kers
From: kers@hplb.hpl.hp.com (Chris Dollin)
Subject: Re: Types, types: static vs. dynamic -- classification
Sender: news@hplb.hpl.hp.com (Usenet News Administrator)
Message-ID: <KERS.95Nov22081302@cdollin.hpl.hp.com>
In-Reply-To: jsutherland@BIX.com's message of 21 Nov 1995 17:51:03 GMT
Date: Wed, 22 Nov 1995 15:13:02 GMT
References: <48imkb$5c9@news1.delphi.com> <48t3i7$oe4@news1.delphi.com>
Nntp-Posting-Host: cdollin.hpl.hp.com
Organization: Hewlett-Packard Laboratories, Bristol, UK.
Lines: 68
Xref: glinda.oz.cs.cmu.edu comp.object:41103 comp.lang.smalltalk:30926 comp.lang.c++:161285 comp.lang.misc:23941

jsutherland@BIX.com (Jeff Sutherland) writes:

   The many comments on types are all interesting, all correct, and all
   confusing to the neophyte.  They reflect that we do not have consistent
   definitions in the world of object technology.  Thus we often argue with
   one another when we don't even know what the other person is really talking
   about.

Too true.

   I propose we lead off with the definitions accepted by the largest software
   consortium on the planet, the OMG.

Ummm ... a request for clarification follows ...

   Type:
   A predicate that describes the common properties and behavior for a
   collection of objects.

How is this different from ``a predicate over values [or objects]''?

   Type definition:
   The meaning or semantics of a type; a specification of the properties and
   behavior that characterize the instances of a type.

Surely the meaning of a type *is* the predicate. Would it be correct to
interpret this as being ``an expression in some language, denoting a type''?

   Type interface:
   The set of requests to which the instances of the type can respond.

Well, I already informally know what ``requests'' and ``responds'' mean,
but if we're going to use these definitions, perhaps you could expand on
them a little.

   Type object:
   An entity that is both an object and a type.

Can objects be predicates? 

   Object:
   Anything to which a type applies; an instance of a type or class.  An
   instance of a class is comprised of the values linked to the object (object
   state) and can respond to the requests specified for the class.

We presume, then, that classes are distinct from types. Is that right? And
do classes give rise to types?

   Class:
   An implementation of an abstract data type. A definition of the data
   structures, methods, and interface of software objects. A template for the
   instantiation (creation) of software objects.

   I propose that we all lead with the OMG definition of the particular "Type
   Object" under discussion and then show how our favorite definitions diverge
   from the OMG standard before we proceed.  

You seem to be saying here that we should write our type definitions in the 
OMG notation before discussing them, but I thought we weren't discussing
particular types, but the very *notion* of type. Am I confused?

   Only then will we know what we are talking about.

Optimist :-)
--

Regards,    | ``"I can't suit myself," said Weinbaum, a little petulantly.
Kers.       | "I work for the Government".'' - Blish, "The Quincunx of Time".
