automatic subtyping/intensions

Tril dem@tunes.org
Sun, 7 Feb 1999 23:40:00 +0000 (GMT)


On Sun, 7 Feb 1999, Thomas M. Farrelly wrote:

> btw: I've been thinking about what you said about your object model -
> that an object having an attribute ment that the object was in the class
> of all object having that attribute. I think you called it "intentional"
> something. Are there any oo languages that uses this, that you can point
> me to?

I think the fact it is in a class for each attribute would be more
accurately described as "automatic subtyping" (I'm making this term up).
But you can have automatic subtyping with extensional systems (the
opposite of intensional), so they don't necessarily go together.  See the
Wiki link dufrp posted about Mozzie, a language with "structural
subtyping" (I am not making this term up, however):
http://www2.tunes.org/cgi-bin/TunesWiki?MOZZIE

Mozzie is still not an intensional language, because it uses traditional
data structures for objects (but it is still very interesting).  What I
mean by intensional is that if two objects have the same semantics, they
are equivalent.  That is, they are treated exactly the same by the system
no matter what implementation they have.  The data structure or functions
used to access and manipulate information related to this object is
irrelevant, only the meaning is important.  This meaning is encoded by
declarative statements in a logic language, a specification.  In my ideal
system, as long as the statements are true of an implementation, the
implementation (automatically) "is a" subtype of the set of all objects
with the specification.  TMF: Does this help clarify?  All others: please
flame if you have no idea what I am talking about, especially if you
disagree or have a better idea :)

In an extensional system the meaning is a side effect of the data
structure and the code accessing it.  But we want this meaning to be
explicit, to allow semantic-based pluggability.

David Manifold <dem@tunes.org>
This message is placed in the public domain.