[cap-talk] Objects and Facets

David Hopwood david.nospam.hopwood at blueyonder.co.uk
Tue Aug 8 07:57:39 EDT 2006


Norman Hardy wrote:
> I think we need to talk about two different languages here.
> One language is used to document specific functionalities provided by  
> a bodies of code residing within a capability system.
> The other is to describe models of capability systems.
> 
> When I implement an up-down counter I want to document it as follows:
> 
> An up-down counter is an object whose mutable state is a 64 bit integer.
> Calling the UDCC creates a counter and returns three facets thereto:  
> Up, Down and Read.
> Invoking Up increments the integer, Invoking Down decrements the  
> integer. Read returns the integer.
> The counter's initial integer is 0.
> 
> It seems clear to me that on the user side of this abstraction  
> boundary there is just one object and three facets, regardless of the  
> technology I use to create those three keys.

I disagree. The only problem here is that you are using different
terminology to the object capability model. Using the latter terminology,
the counter would be documented like this:

  An up-down counter is an component whose mutable state is a 64 bit integer.
  Calling the counter-maker creates a counter and returns three facets which
  are functions: Up, Down and Read.
  Invoking Up() increments the integer, Invoking Down() decrements the
  integer. Read() returns the integer.
  The counter's initial integer is 0.

> The keys may be all to the same domain or to three domains or indeed  
> one domain may implement several counters.

The object-cap-model terminology is also neutral with respect to these
implementation details (for systems that have domains separate from objects).

> In any case three keys are facets to the same object.

The three keys are facets (= external objects) to the same component, not
object.

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




More information about the cap-talk mailing list