A higher abstraction level using first-class inheritance relations

  • Authors:
  • Marko van Dooren;Eric Steegmans

  • Affiliations:
  • Department of Computer Science, K.U.Leuven;Department of Computer Science, K.U.Leuven

  • Venue:
  • ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Although classes are a fundamental concept in object-oriented programming, a class itself cannot be built using general purpose classes as building blocks in a practical manner. High-level concepts like associations, bounded values, graph structures, and infrastructure for event mechanisms which form the foundation of a class cannot be reused conveniently as components for classes. As a result, they are implemented over and over again. We raise the abstraction level of the language with a code inheritance relation for reusing general purpose classes as components for other classes. Features like mass renaming, first-class relations, high-level dependencies, component parameters, and indirect inheritance ensure that maximal reuse can be achieved with minimal effort. A case study shows a reduction of the code between 21% and 36%, while the closest competitor only reduces the size between 3% and 12%.