RUS  ENG
Full version
JOURNALS // Proceedings of the Institute for System Programming of the RAS // Archive

Proceedings of ISP RAS, 2015 Volume 27, Issue 6, Pages 169–188 (Mi tisp192)

The concept of inheritance in modern programming languages

A. Kanatov, E. Zouev

Samsung R&D Institute Russia

Abstract: The paper gives a brief overview of existing approaches to inheritance implemented in some mainstream and experimental programming languages including Ada, Eiffel, C++, Java, Scala, Oberon, and Zonnon. Advantages and limitations of the approaches are analyzed and discussed.The paper claims that multiple inheritance model is one of the most important features that should be supported by any modern programming language because it reflects some fundamental relationships in the real world. However, only a few industrial languages do support the modelwherein such a support is far from being comfortable for users and leads to many troubles in development and maintenance. An alternative approach in the design of inheritance support is presented. The suggested approach keeps multiple inheritance as the general, powerfuland flexible mechanism for software design and reuse and is based on overloading and overriding with conflicts resolution at call sites based on conformance instead of full validity of the system inheritance graph. All typical problems in multiple inheritance including name clashes, name resolution, signature conformance, covariance and contravariance are carefully consideredand discussed. The detailed explanation of how the problems are solved within the approach is presented. The paper describes a completely research project and is not supported by Samsung R&D Institute.

Keywords: multiple inheritance, overriding, name clashes, version conflict, origin and seed.

DOI: 10.15514/ISPRAS-2015-27(6)-12



Bibliographic databases:


© Steklov Math. Inst. of RAS, 2024