Object based, imperative languages with delegation (eg SELF) support exploratory programming: composition of objects, sharing of attributes and modification of objects' behaviour at run-time are easily expressible. Delegation allows objects to delegate execution of methods to other objects and to adapt delegated behaviour by overriding of method definitions. These features allow for creation of very flexible programs that can accommodate requirement changes at a very late stage.
Programming language design and understanding has generally benefited from formal models of programming languages. Such models, of course, tend to focus on the essential features of the particular language, making it possible to highlighting design alternatives and compare them. Models for object based languages have already been developed in the 90's, but these models do not directly express imperative delegation.
We argue that no calculi so far developed fully express the essence of such languages. We give a simple intuitive calculus for imperative object based delegation. We start with delta-, an imperative object based calculus, and demonstrate its use through examples. delta- is similar to the first order imperative Abadi Cardelli calculus, though simpler in some sense. We prove a correspondence theorem. We then present delta, which extends delta- through explicit delegation; delta allows an object to specify explicitly to which objects it wants to delegate. We show key features of delta through examples.
pubs.doc.ic.ac.uk: built & maintained by Ashok Argent-Katwala.