Book Chapter10.1007/978-3-319-45279-1_1
Language Support for Generic Programming in Object-Oriented Languages: Peculiarities, Drawbacks, Ways of Improvement
Julia Belyakova
- 22 Sep 2016
- pp 1-15
5
TL;DR: This paper analyzes language constructs for GP in seven modern object-oriented languages and demonstrates that all of these languages follow the same approach to constraining type parameters, which has a number of inevitable problems.
read more
Abstract: Earlier comparative studies of language support for generic programming (GP) have shown that mainstream object-oriented (OO) languages such as C# and Java provide weaker support for GP as compared with functional languages such as Haskell or SML. But many new object-oriented languages have appeared in recent years. Have they improved the support for generic programming? And if not, is there a reason why OO languages yield to functional ones in this respect? In this paper we analyse language constructs for GP in seven modern object-oriented languages. We demonstrate that all of these languages follow the same approach to constraining type parameters, which has a number of inevitable problems. However, those problems are successfully lifted with the use of the another approach. Several language extensions that adopt this approach and allow to improve GP in OO languages are considered. We analyse the dependencies between different language features, discuss the features’ support using both approaches, and propose which approach is more expressive.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Effectiveness of Kotlin vs. Java in android app development tasks
TL;DR: Evidence suggests that the effort in transitioning to Kotlin can provide some advantages to Java developers, especially regarding code conciseness, and some of the promises of Kotlin to be a ”better Java” have been confirmed by an empirical assessment.
51
Staging for generic programming in space and time
TL;DR: In this article, the authors propose the notion of stage polymorphism, which enables novel abstractions in the design of program generators, and apply it to two important case studies: convolution on images and the fast Fourier transform (FFT).
17
Language support for generic programming in object-oriented languages: design challenges
Julia Belyakova
- 01 Jan 2016
TL;DR: This paper compares ten modern object-oriented languages and language extensions with respect to their support for generic programming and finds that every of these languages strictly follows one of the two approaches to constraining type parameters.
WebAssembly – Hope for Fast Acceleration of Web Applications Using JavaScript
Krystian Fras,Ziemowit Nowak +1 more
- 15 Sep 2019
TL;DR: One of the most difficult experiences of users of modern web applications is their performance, which is too slow, as the hindrance is on the client's side – the monopoly of JavaScript language.
1
The Contrastive Study of Generic Programming in Object-Oriented Languages
ZHOU Weixing,ZUO Zhengkang,WANG Changjing,SHI Haihe,YOU Zhen,XIE Wuping,TAO Xiaoming +6 more
TL;DR: This study compares generic programming in 5 object-oriented languages (C++, Concepts C++, Java, C#, and Python) through a contrastive analysis, exploring the essence of generic programming and its support in each language to enhance software reusability and maintainability.
References
An Efficient Unification Algorithm
Arabella Martelli,Ugo Montanari +1 more
TL;DR: A new unification algorithm, characterized by having the acyclicity test efficiently embedded into it, is derived from the nondeterministic one, and a PASCAL implementation is given.
•Book
C++ Standard Template Library
P. J. Plauger,Meng Lee,David R. Musser,Alexander A. Stepanov +3 more
- 01 Dec 2000
TL;DR: This book is the definitive reference on C++ programming using STL, as it was written by the team that created the library, and includes background, a review of the standard, using the component, implementing the component.
286
Type classes in Haskell
Cordelia V. Hall,Kevin Hammond,Simon Jones,Philip Wadler +3 more
- 01 Mar 1996
TL;DR: A set of type inference rules for resolving overloading introduced by type classes, as used in the functional programming language Haskell, are defined, using second-order lambda calculus to record type information in the transformed program.
Associated types and constraint propagation for mainstream object-oriented generics
Jaakko Järvi,Jeremiah Willcock,Andrew Lumsdaine +2 more
- 12 Oct 2005
TL;DR: These extensions to object-oriented interfaces and subtyping are demonstrated in the context of C# (with generics), a translation of the extended features to C# is described, and a formalism proving their safety is presented.
32
Concepts – Design choices for template argument checking
Bjarne Stroustrup,Gabriel Dos Reis +1 more
- 01 Jan 2003
TL;DR: This note presents problems, ideals, and design ideas for ways of checking template arguments to simplify the writing and use of templates without loss of run-time performance or expressive power compared to the original template design.
Related Papers (5)
André Pang,Manuel M. T. Chakravarty +1 more
- 08 Sep 2003
Catriel Beeri
- 31 Aug 1988
Catriel Beeri
- 01 Jan 1994