We develop an imperative calculus that provides a formal model for both single and mixin inheritance. By introducing classes
and mixins as the basic object-oriented constructs in a λ-calculus with records and references, we obtain a system with an
intuitive operational semantics. New classes are produced by applying mixins to superclasses. Objects are represented by records
and produced by instantiating classes. The type system for objects uses only functional, record, and reference types, and
there is a clean separation between subtyping and inheritance.
Keywords Object-oriented language - mixin - class - inheritance - calculus - operational semantics - type system