has been a cornerstone of Object-Oriented programming at least since
Simula 67. But it is complex and error-prone: witness the "fragile
base class" problem, the con ict between inheritance and encapsulation,
and the confusion between inheritance and subtyping. This activity
demonstrates that inheritance is both hard to avoid, and hard to
The purpose of this workshop is to open a dialog about the functions
and goals that inheritance serves, and how inheritance might best
be constrained, changed or replaced to meet these goals. We seek
evaluations of and experience reports on inheritance and its known
alternatives, and descriptions of languages using alternative mechanisms.
Possible subtopics include:
Flaws and anomalies in the way inheritance is currently implemented
or used. Examples that are hard to express.
Inheritance mechanisms: single, multiple, mixin based, composing,
rst-class or second-class, aspect-oriented.
Interaction between inheritance and other language features:
inheritance and parameterization, inheritance and typing, inheritance
and encapsulation, inheritance and behaviour.
Inheritance and software maintenance: inheritance at analysis,
design or implementation time; inheritance and program understanding;
refactoring tools and inheritance.
Conceptual views of inheritance: inheritance a conceptual
modeling tool, as a dependency management tool, and as a code reuse