Preview

Труды Института системного программирования РАН

Расширенный поиск

Концепция наследования в современных языках программирования

https://doi.org/10.15514/ISPRAS-2015-27(6)-12

Аннотация

Статья содержит обзор и анализ реализаций понятия наследования в современных промышленных языках программирования. Исследуются достоинства и недостатки механизмов наследования в таких языках, как С++, Java, C# и Eiffel и других, анализируются их особенности и ограничения моделей наследования, реализованных в этих языках. На основе проведенного анализа в статье предлагается альтернативный подход к трактовке наследования, который сочетает общность и гибкость множественного наследования и простоту практического применения для целей повторного использования кода. Суть предлагаемого подхода заключается в переносе контроля валидности полного графа наследования на этап обработки обращений к свойствам класса на основе анализа перекрытий (overriding) и контроля подобия (conformance) сигнатур свойств. Предложенный подход может быть реализован как дополнение к какому-либо существующему языковому инструменту, так и в виде независимой реализации.

Об авторах

А. В. Канатов
Исследовательский центр Samsung
Россия


Е. А. Зуев
Исследовательский центр Samsung
Россия


Список литературы

1. International Standard: ISO/IEC 14882:2011(E) Information technology - Programming Languages - С++

2. J.Gosling, B.Joy, G.Steele, G.Bracha, A.Buckley, The Java Language Specification, 2015-02-13, https://docs.oracle.com/javase/specs/jls/se8/jls8.pdf

3. C# Language Specification, Version 5.0, Microsoft Corporation, https://www.microsoft.com/en-us/download/details.aspx?id=7029

4. Gutknecht J., Romanov V., Zueff E. The Zonnon Project: A.NET Language and Compiler Experiment, in V.Skala, P.Nienaltowski (Eds.).NET Technologies 2005 Conference Proceedings, May 30 - June 1, 2005, University of West Bohemia, Plzen, Czech Republic, ISBN 80-86943-01-1.

5. International Standard: ISO/IEC 16262:2011(E) Information technology - Programming Languages, their environments and system software interfaces - ECMAScript language specification.

6. The Python Language Reference, https://docs.python.org/3.3/reference/.

7. Martin Odersky, Lex Spoon, and Bill Venners: Programming in Scala, Second Edition, Artima Press, 2010.

8. International Standard: ISO/IEC 8652:2012 Information technology - Programming Languages - Ada.

9. Bertrand Meyer: Object-Oriented Software Construction, Second Edition. Prentice Hall. ISBN 0-13-629155-4.

10. N.Wirth: The Programming Language Oberon, http://www.inf.ethz.ch/personal/ wirth/Oberon/Oberon.Report.pdf

11. The Swift Programming Language Reference: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AboutTheLanguageReference.html.

12. The Kotlin Language Reference. http://kotlinlang.org/docs/reference/


Рецензия

Для цитирования:


Канатов А.В., Зуев Е.А. Концепция наследования в современных языках программирования. Труды Института системного программирования РАН. 2015;27(6):169-188. https://doi.org/10.15514/ISPRAS-2015-27(6)-12

For citation:


Kanatov A., Zouev E. The concept of inheritance in modern programming languages. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2015;27(6):169-188. (In Russ.) https://doi.org/10.15514/ISPRAS-2015-27(6)-12



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)