ACM Home Page
Please provide us with feedback. Feedback
Integrating semantics and compilation: using c++ concepts to develop robust and efficient reusable libraries
Full text PdfPdf (506 KB)
Source
Generative Programming And Component Engineering archive
Proceedings of the 7th international conference on Generative programming and component engineering table of contents
Nashville, TN, USA
SESSION: Technical papers 3 table of contents
Pages 67-76  
Year of Publication: 2008
ISBN:978-1-60558-267-2
Authors
Peter Gottschling  Dresden University of Technology, Dresden, Germany
Andrew Lumsdaine  Indidana University, Bloomington, IN, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 1,   Downloads (12 Months): 77,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1449913.1449925
What is a DOI?

ABSTRACT

Concepts are a recently proposed extension to C++ for the direct linguistic support of generic programming. As the interface description mechanism for large-scale generic libraries, concepts do not exist in isolation, but rather in semantic frameworks (or concept lattices). Concepts provide powerful type-checking capabilities for generic programming and the semantics associated with them present new and interesting capabilities for library-compiler interactions. This paper presents some of these emergent capabilities in the context of a library of algebraic concepts. Based on this library, which possesses rich, well-structured and mathematically-based semantics, we demonstrate how the concepts therein can enable a sophisticated oncept-aware design for a broad range of scientific generic libraries. In particular, we show that concepts can enable the description and application of property-based, library-defined, optimizations. Whereas compilers without concepts are limited to optimization of built-in types, library-defined optimizations based on concepts not only allow for optimizations of user-defined types unknown to the compiler, they are even applicable to types unknown to the library developer.


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
O. Bagge, M. Haveraaen, and E. Visser. CodeBoost: A framework for the transformation of C++ programs. Technical report, Universiteit Utrecht, The Netherlands, October 2000.
 
2
J.-C. Birget, S. Margolis, J. Meakin, and M. Sapir, editors. Algorithmic Problems in Groups and Semigroups. Birkhäuser, Boston, 2000.
 
3
N. Bourbaki. Algèbre I: Chapitres 1 à 3. Numérisation BnF de l'édition de Paris, 1970.
 
4
P. Gottschling. Fundamental algebraic concepts in concept-enabled C++. Technical Report 638, Indiana University, 2006.
 
5
P. Gottschling and W. E. Brown. Toward a more complete taxonomy of algebraic properties for numeric libraries in tr2. Technical Report N2650=08-0160, ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language C++, June 2008.
6
 
7
K. Henckell and J.-E. Pin. Ordered Monoids in J-Trivial, pages 121--137. In Birget et al. {2}, 2000.
 
8
M. R. Hestenes and E. Stiefel. Methods of conjugate gradients for solving linear systems. J. Res. Nat. Bur. Standards, 49(6):409--436, December 1952.
 
9
 
10
H. Holin. Boost Quaternion Library. Boost, 2003. www.boost.org/libs/math/quaternion.
 
11
 
12
S. Mechveliani. DoCon the algebraic domain constructor. http://www.haskell.org/docon/.
 
13
D. R. Musser, S. Schupp, C. Schwarzweller, and R. Loos. The Tecton concept library. Technical report, Fakultät für Informatik, Universität Tübingen, 1999.
 
14
D. Quinlan. ROSE: Compiler support for object-oriented frameworks. Parallel Processing Letters, 10(2,3):215--226, 2000.
 
15
J.-F. Raymond, P. Tesson, and D. Thérien. Multiparty Communication Complexity of Finite Monoids, pages 217--233. In Birget et al. {2}, 2000.
 
16
S. Schupp, D. P. Gregor, and D. R. Musser. Algebraic concepts represented in C++. Technical Report TR-00-8, Rensselaer Polytechnic Institute, 2000. http://www.cs.chalmers.se/~schupp/old_projects/simpl/doc/AlgCpp.pdf.
 
17
 
18
J. Siek and A. Lumsdaine. Concept checking: Binding parametric polymorphism in C++. In First Workshop on C++ Template Programming, October 2000.
 
19
Silicon Graphics, Inc. SGI Implementation of the Standard Template Library, 2004. http://www.sgi.com/tech/stl/.
 
20
B. Stroustrup and G. Dos Reis. A concept design. C++ Extensions reflector message c++std-ext-7073, April 2005.
 
21
B. L. van der Waerden. Algebra, Volume I and II. Springer, 1990.
 
22
E. Visser. Program transformation with Stratego/XT: Rules, strategies, tools, and systems in StrategoXT-0.9. In C. Lengauer et al., editors, Domain-Specific Program Generation, volume 3016 of Lecture Notes in Computer Science, pages 216--238. Spinger-Verlag, June 2004.

Collaborative Colleagues:
Peter Gottschling: colleagues
Andrew Lumsdaine: colleagues