Mixins are modules in which some components are deferred,
that
is, their definition has to
be provided by another module. Moreover, in contrast to parameterized modules
(like ML
functors), mixin modules can be mutually dependent and their composition
supports the
redefinition of components (overriding). In this
paper, we present a formal model of mixins
and their basic composition operators. These operators can be viewed as
a kernel language
with clean semantics in which one can express more complex operators of
existing modular
languages, including variants of inheritance in object-oriented programming.
Our formal
model is given in an ‘institution independent’ way,
that is, it is parameterized by the
semantic framework modelling the underlying core language.