| Runtime concepts for the C++ standard template library |
| Full text |
Pdf
(205 KB)
|
| Source
|
Symposium on Applied Computing
archive
Proceedings of the 2008 ACM symposium on Applied computing
table of contents
Fortaleza, Ceara, Brazil
SESSION: Object-oriented programming languages and systems
table of contents
Pages 171-177
Year of Publication: 2008
ISBN:978-1-59593-753-7
|
|
Authors
|
|
Peter Pirkelbauer
|
Texas A&M University, College Station, TX
|
|
Sean Parent
|
Adobe Systems, Inc., San Jose, CA
|
|
Mat Marcus
|
Adobe Systems, Inc., Seattle, WA
|
|
Bjarne Stroustrup
|
Texas A&M University, College Station, TX
|
|
| Sponsor |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 12, Downloads (12 Months): 59, Citation Count: 0
|
|
|
ABSTRACT
A key benefit of generic programming is its support for producing modules with clean separation. In particular, generic algorithms are written to work with a wide variety of unmodified types. The Runtime concept idiom extends this support by allowing unmodified concrete types to behave in a runtime polymorphic manner. In this paper, we describe one implementation of the runtime concept idiom, in the domain of the C++ standard template library (STL). We describe and measure the performance of runtime-polymorphic analogs of several STL algorithms. We augment the runtime concept idiom by employing a dispatch mechanism that considers both type and concept information to maximize performance when selecting algorithm implementations. We use our implementation to demonstrate the effects of different compile-time vs. run-time algorithm selection choices, and we indicate where improved language and compiler support would be useful.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
The Boost C++ libraries, 2002. http://www.boost.org/.
|
| |
2
|
|
| |
3
|
Adobe System Inc. Adobe Source Library. http://opensource.adobe.com, 2005.
|
| |
4
|
P. An, A. Jula, S. Rus, S. Saunders, T. Smith, G. Tanase, N. Thomas, N. Amato, and L. Rauchwerger. STAPL: A Standard Template Adaptive Parallel C++ Library. In LCPC '01, pages 193--208, Cumberland Falls, Kentucky, Aug 2001.
|
| |
5
|
|
| |
6
|
T. Becker. Type erasure in C++: The glue between object oriented and generic programming. In K. Davis and J. Striegnitz, editors, Multiparadigm Programming 2007: Proceedings of the MPOOL Workshop at ECOOP'07, July 2007.
|
| |
7
|
|
| |
8
|
L. Bourdev and J. Järvi. Efficient run-time dispatching in generic programming with minimal code bloat. In Workshop of Library-Centric Software Design at OOPSLA'06, Portland Oregon, Oct. 2006.
|
| |
9
|
|
 |
10
|
Douglas Gregor , Jaakko Järvi , Jeremy Siek , Bjarne Stroustrup , Gabriel Dos Reis , Andrew Lumsdaine, Concepts: linguistic support for generic programming in C++, Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
| |
11
|
|
| |
12
|
ISO/IEC 14882 International Standard. Programming languages: C++. American National Standards Institute, September 1998.
|
 |
13
|
|
| |
14
|
M. Marcus, J. Järvi, and S. Parent. Runtime polymorphic generic programming---mixing objects and concepts in ConceptC++. In K. Davis and J. Striegnitz, editors, Multiparadigm Programming 2007: Proceedings of the MPOOL Workshop at ECOOP'07, July 2007.
|
| |
15
|
S. Parent. Beyond objects: Understanding the software we write. Presentation at C++ connections, November 2005.
|
| |
16
|
S. Parent. Concept-Based Runtime Polymorphism. Presentation at BoostCon, May 2007.
|
| |
17
|
|
|