[cap-talk] Objects and Facets
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
David Hopwood <david.nospam.hopwood at blueyonder.co.uk>
More information about the cap-talk