How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Contraint-based polymorphism in Cecil: towards a practical and static type system
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Generic programming and the STL: using and extending the C++ Standard Template Library
Generic programming and the STL: using and extending the C++ Standard Template Library
Framework integration problems, causes, solutions
Communications of the ACM
LEDA: a platform for combinatorial and geometric computing
LEDA: a platform for combinatorial and geometric computing
On the design of CGAL a computational geometry algorithms library
Software—Practice & Experience - Special issue on discrete algorithm engineering
The boost graph library: user guide and reference manual
The boost graph library: user guide and reference manual
The Matrix Template Library: Generic Components for High-Performance Scientific Computing
Computing in Science and Engineering
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Concept-controlled polymorphism
Proceedings of the 2nd international conference on Generative programming and component engineering
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Lifting sequential graph algorithms for distributed-memory parallel computation
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Concepts: linguistic support for generic programming in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Software extension and integration with type classes
Proceedings of the 5th international conference on Generative programming and component engineering
An extended comparative study of language support for generic programming
Journal of Functional Programming
STAPL: an adaptive, generic parallel C++ library
LCPC'01 Proceedings of the 14th international conference on Languages and compilers for parallel computing
Runtime concepts for the C++ standard template library
Proceedings of the 2008 ACM symposium on Applied computing
Property models: from incidental algorithms to reusable components
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Design for Interoperability in stapl: pMatrices and Linear Algebra Algorithms
Languages and Compilers for Parallel Computing
LCSD '07 Proceedings of the 2007 Symposium on Library-Centric Software Design
Towards the Modularization of C++ Concept Maps
Electronic Notes in Theoretical Computer Science (ENTCS)
Dynamic algorithm selection for runtime concepts
Science of Computer Programming
Component adaptation and assembly using interface relations
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Support for the evolution of C++ generic functions
SLE'10 Proceedings of the Third international conference on Software language engineering
Composing heterogeneous software with style
Proceedings of the 1st International Workshop on Free Composition
Hi-index | 0.00 |
Large scale software is composed of libraries produced by different entities. Non-intrusive and efficient mechanisms for adapting data structures from one library to conform to APIs of another are essential for the success of large software projects. Concepts and concept maps, planned features for the next version of C++, have been designed to support adaptation, promising generic, non-intrusive, efficient, and identity preserving adapters. This paper analyses the use of concept maps for library composition and adaptation, comparing and contrasting concept maps to other common adaptation mechanisms. We report on two cases of data structure adaptation between different libraries, indicating best practices and idioms along the way. First, we adapt GUI controls from several frameworks for use with a generic layout engine, extending the application of concepts to run-time polymorphism. Second, we develop a transparent adaptation layer between an image processing library and a graph algorithm library, enabling the efficient application of graph algorithms to the image processing domain.