es are extended with a factorable, abstract state, and methods of interfaces are extended with state transformation behaviours. A new programming language command, the USE statement, allows clients to negotiate for those services provided by an object. A mixture of static and dynamic checking ensures the consistency of an object's state according to the specification of the object's interfaces. The mechanism proposed allows a clearer expression of re-entrance conditions and dynamic service availability, and a greater level of checking that allows erroneous cases to be prevented or detected during development time. The mechanism also acts as a self-documenting feature for interfaces.
Simon D. Kent, Chris Ho-Stuart, Paul Roe