|
Language support for generic programming in object-oriented languages: design challenges
[Дизайн средств обобщённого программирования в объектно-ориентированных языках: ключевые решения]
Julia Belyakova I. I. Vorovich Institute of Mathematics, Mechanics and Computer Science, Southern Federal University
Аннотация:
Принято считать, что объектно-ориентированные (ОО) языки программирования обеспечивают более слабую поддержку обобщённого программирования (ОП) по сравнению с такими функциональными языками как Haskell или SML. Это было показано в нескольких работах, посвящённых сравнительному анализу языков программирования. Но в последние годы появились новые объектно-ориентированные языки. Улучшили ли они поддержку обобщённого программирования? И если нет, есть ли причина, по которой ОО-языки до сих пор уступают функциональным языкам в этом отношении? В предыдущих исследованиях объектно-ориентированные языки не рассматривались специальным образом. Однако, возможности ОО-программирования влияют и на средства обобщённого программирования в языке, а также на сам стиль обобщённого программирования. В этой статье мы проводим сравнение средств обобщённого программирования в десяти современных объектно-ориентированных языках и их расширениях. В результате сравнительного анализа было обнаружено, что каждый из этих языков и расширений придерживается в точности одного из двух подходов к ограничению типовых параметров обобщённого кода. Таким образом, первый ключевой вопрос дизайна средств ОП, рассматриваемый в статье, это «какой подход лучше» (если он вообще есть). Оказывается, что большинство исследованных нами ОО-языков используют более ограниченный подход. Второй момент, который оказывает существенное влияние на выразительную мощь языка программирования, это поддержка множественных моделей. В статье рассматриваются преимущества и недостатки этой возможности, а также её связь с другими языковыми средствами поддержки обобщённого программирования.
Ключевые слова:
объектно-ориентированные языки, обобщённое программирование, типы, ограничения, концепты, интерфейсы, концепт-паттерн, множественные модели, концепт-параметры.
Образец цитирования:
Julia Belyakova, “Language support for generic programming in object-oriented languages: design challenges”, Труды ИСП РАН, 28:2 (2016), 5–32
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp17 https://www.mathnet.ru/rus/tisp/v28/i2/p5
|
Статистика просмотров: |
Страница аннотации: | 172 | PDF полного текста: | 126 | Список литературы: | 48 |
|