SUIF: an infrastructure for research on parallelizing and optimizing compilers
ACM SIGPLAN Notices
Foundations of programming languages
Foundations of programming languages
Building an optimizing compiler
Building an optimizing compiler
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
Introduction to Algorithms
Algorithms on Trees and Graphs
Algorithms on Trees and Graphs
The Matrix Template Library: Generic Components for High-Performance Scientific Computing
Computing in Science and Engineering
Automatically proving the correctness of compiler optimizations
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
An algebraic programming style for numerical software and its optimization
An algebraic programming style for numerical software and its optimization
Active libraries and universal languages
Active libraries and universal languages
Concepts: linguistic support for generic programming in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Library composition and adaptation using c++ concepts
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
STAPL: an adaptive, generic parallel C++ library
LCPC'01 Proceedings of the 14th international conference on Languages and compilers for parallel computing
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Testing with concepts and axioms in C++
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Reusable, generic program analyses and transformations
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
The axioms strike back: testing with concepts and axioms in C++
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Axiom-Based Transformations: Optimisation and Testing
Electronic Notes in Theoretical Computer Science (ENTCS)
Generic flow-sensitive optimizing transformations in C++ with concepts
Proceedings of the 2010 ACM Symposium on Applied Computing
Electronic Notes in Theoretical Computer Science (ENTCS)
Exploiting regularity of user-defined types to improve precision of program analyses
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Summary-based data-flow analysis that understands regular composite objects and iterators
ACM SIGAPP Applied Computing Review
Hi-index | 0.00 |
Production compilers' optimizers typically operate at low abstraction levels, transformation rules enacting on operations on built-in types only. Transformations at higher levels of abstraction, on operations of types defined in libraries or by the user, are typically not supported. Such high-level optimizations could, however, yield greater benefits than first lowering the abstractions and subjecting the result to low-level transformations. Built-in compiler optimizations can in principle apply to user-defined types, if those types possess properties that guarantee that the optimizing transformations preserve the meaning of the program. The problem is conveying this information to the compiler in a non-disruptive manner. This article describes a framework for specifying and implementing generic "concept-based optimizations." The framework is based on careful categorization, applying the generic programming paradigm, of the algebraic properties that justify particular optimizing transformations. Our framework is built on top of ConceptGCC, a compiler implementing the new language features concept and concept map of the forthcoming standard C++. Concepts describe the syntactic and semantic properties of classes of types, for which generic semantics-preserving transformations can be defined. Concept maps establish memberships to these classes, enabling the generic optimizations for specific user-defined types.