Date: Wed 17 Jul
Time: 15.00
Place: room 214

Speaker: Davide Ancona
Title: An algebraic approach to mixins and modularity

Abstract. The notion of "mixin" ("abstract class") comes originally from object oriented programming, and means a class where some methods are not defined ("deferred"), which can be effectively used only when applied to some superclass implementing the deferred methods. Actually, this notion is completely independent from the object and class concepts, and can be formulated in a general way in the context of module composition, getting what we call "mixin modules", i.e. modules with deferred components. The main advantage is the possibility of defining mutually dependent modules, allowing recursive definitions to span module boundaries, and of combining them by means of a merge operation which in a sense generalizes the usual module instantiation (e.g. functor application in ML). We present an algebraic formalization of the notion of mixin module, together with a set of basic operators for composing mixins, intended to be a kernel language with clean semantics in which to express more complex operators of existing modular languages (including variants of inheritance in object oriented programming). The semantics of the operators is given in an "institution independent" way, i.e. is parameterized on the semantic framework modeling features of the underlying core language.