[cap-talk] "Same" key

David Hopwood david.nospam.hopwood at blueyonder.co.uk
Tue Feb 6 20:00:55 CST 2007


Mark S. Miller wrote:
> David Hopwood wrote:
>> Jonathan S. Shapiro wrote:
>>
>>> But I think Bill Frantz's definition was closer to what people really
>>> say and mean.
>>
>> You mean
>> <http://www.eros-os.org/pipermail/cap-talk/2006-December/006721.html>?
>>
>> I thought that article was hopelessly confused. Yes, languages and
>> operating systems tend to use different implementations of objects, but
>> they are implementing the same concept. The level of abstraction at which
>> there may (or may not) exist v-tables or data-bytes in capability
>> representations, simply is not relevant to the definition of an object.
> 
> David, perhaps you missed the point of Bill's message? It wasn't
> prescriptive -- he wasn't saying these various camps

"Communities", please, not camps. This isn't a battle, and many people
consider themselves to be members of both communities.

> should look at
> things the way he explains. Rather, it's descriptive and historical --
> trying to explain why the different camps are drawn to such different
> intuitions about how to carve things up for descriptive purposes.

I'm afraid I don't have much time for anyone who tries to understand a
concept in terms of just one implementation approach. (In the case of
dynamic method dispatch, there are at least three approaches, of which
v-tables are a special case of one [*].)

I am not so pessimistic about the general programming population that I
assume that most of them are making this mistake, or that any particular
programmer is making this mistake.

Even if they were, how can using different terminology for the same
concept in languages and operating systems possibly be helpful?

I'm definitely not going to repeat every argument that I want to make
about obj-cap systems using two different sets of terminology. It would
be a waste of my time.


[*] The three approaches (not necessarily exhaustive) are:

    - caller looks up method ID in a data structure associated with the
      invoked object's concrete type.
    - caller looks up (method ID, concrete type ID) in a global data
      structure.
    - caller calls a single entry point associated with the concrete
      type, and that routine does different things depending on the
      method ID.

    All of these are potentially applicable to *all* object systems.

-- 
David Hopwood <david.nospam.hopwood at blueyonder.co.uk>



More information about the cap-talk mailing list