Reverse inheritance in statically typed object-oriented programming languages

Reverse inheritance is a new class reuse mechanism, an experimental implementation of which we have built for Eiffel. It enables a more natural design approach, factorization of common features (members), insertion of classes into an existing hierarchy etc. Due to its reuse potential in Eiffel we consider exploring its capabilities in other industrial-strength programming languages like C++, Java and C#.

[1]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[2]  Michael Schrefl,et al.  Object class definition by generalization using upward inheritance , 1988, Proceedings. Fourth International Conference on Data Engineering.

[3]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[4]  Claus H. Pedersen,et al.  Extending ordinary inheritance schemes to include generalization , 1989, OOPSLA '89.

[5]  Markku Sakkinen,et al.  Disciplined Inheritance , 1989, ECOOP.

[6]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[7]  Todd D. Millstein,et al.  Statically scoped object adaptation with expanders , 2006, OOPSLA '06.

[8]  Ana Moreira,et al.  Object-oriented technology : ECOOP 2002 Workshop Reader : ECOOP 2002 Workshops and Posters, Málaga, Spain, June 10-14, 2002 : proceedings , 2002 .

[9]  Philippe Lahire,et al.  A Reverse Inheritance Relationship for Improving Reusability and Evolution: The Point of View of Feature Factorization , 2004 .

[10]  Oscar Nierstrasz,et al.  Traits: Composable Units of Behaviour , 2002, ECOOP.

[11]  Alexandre Bergel,et al.  Classboxes: A Minimal Module Model Supporting Local Rebinding , 2003, JMLC.

[12]  Markku Sakkinen,et al.  A Critique of the Inheritance Principles of C++ , 1992, Comput. Syst..

[13]  Markku Sakkinen,et al.  Exheritance — Class Generalisation Revived , 2002 .

[14]  Ted Lawson,et al.  The Potential For Reverse Type Inheritance in Eiffel , 1994, TOOLS.