An object is some unknown State ? on which a method M can be invoked by Name. To implement this model we need a mapping from method names to method implementations. So, to invoke a method M′ in the object ?’ we find the corresponding method implementation in a behaviour description B′. Hence an object is a tuple of behaviour B′ and state ?’. Since behaviour is separate from the object it describes, it is possible to share any given behaviour B′ between several distinct objects ?’, ?’’, ?’’’, …
PIUMARTA, Ian and WARTH, Alessandro, 2006. Open reusable object models. 2006. pdf , pdf , p. 3, Fig. 3.
Code Reuse between different object model implementations is rare. Most object models cannot easily be shared because they are implemented at a lower level of abstraction than that of the language in which they are designed to operate, rendering their semantics opaque and unavailable for modification by end users. We show that three object types and four methods are sufficient to bootstrap an object model whose semantics are described entirely in terms of those same objects and messages. The result is a simple but powerful object model that can be implemented easily and efficiently, in which all semantics are exposed and malleable, facilitating extensibility, interoperability and implementation reuse.