This paper presents an imperative object calculus, designed to support class-based programming via a combination of extensible objects and encapsulation. This calculus simplifies the language presented in Fisher's thesis in that, like C++ and Java, it chooses to support an imperative semantics instead of method specialization. We show how Java-style classes and ``mixins'' may be coded in this calculus and prove a subject reduction theorem.

Full paper [ps.gz]