How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
AXIOM: the scientific computation system
AXIOM: the scientific computation system
Subtypes vs. where clauses: constraining parametric polymorphism
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Communications of the ACM
The boost graph library: user guide and reference manual
The boost graph library: user guide and reference manual
An STL message decryptor for visual C++
C/C++ Users Journal
Design, implementation and testing of extended and mixed precision BLAS
ACM Transactions on Mathematical Software (TOMS)
Maude: specification and programming in rewriting logic
Theoretical Computer Science - Rewriting logic and its applications
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Denotational proof languages
A comparative study of language support for generic programming
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
High-level static analysis for generic libraries
High-level static analysis for generic libraries
The next generation software program
International Journal of Parallel Programming - Special issue: The next generation software program
C++ code design for multi-purpose explicit finite volume methods: requirements and solutions
Proceedings of the 8th workshop on Parallel/High-Performance Object-Oriented Scientific Computing
Reusable, generic program analyses and transformations
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
C++ metastring library and its applications
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Hi-index | 0.00 |
Generic programming is an especially attractive paradigm for developing libraries for high-performance computing because it simultaneously emphasizes generality and efficiency. In the generic programming approach, interfaces are based on sets of specified requirements on types, rather than on any particular types, allowing algorithms to inter-operate with any data types meeting the necessary requirements. These sets of requirements, known as concepts, can specify syntactic as well as semantic requirements. Besides providing a powerful means of describing interfaces to maximize software reuse, concepts provide a uniform mechanism for more closely coupling libraries with compilers and for effecting domain-specific library-based compiler extensions. To realize this goal however, programming languages and their associated tools must support concepts as first-class constructs. In this paper we advocate better syntactic and semantic support to make concepts first-class and present results demonstrating the kinds of improvements that are possible with static checking, compiler optimization, and algorithm correctness proofs for generic libraries based on concepts.