Handbook of theoretical computer science (vol. B)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
The TAMPR program transformation system: simplifying the development of numerical software
Modern software tools for scientific computing
Basic Linear Algebra Subprograms for Fortran Usage
ACM Transactions on Mathematical Software (TOMS)
The Matrix Template Library: Generic Components for High-Performance Scientific Computing
Computing in Science and Engineering
The Lambda library: unnamed functions in C++
Software—Practice & Experience
An algebraic programming style for numerical software and its optimization
An algebraic programming style for numerical software and its optimization
An annotation language for optimizing software libraries
DSL'99 Proceedings of the 2nd conference on Conference on Domain-Specific Languages - Volume 2
Compiler-enforced memory semantics in the SACLIB computer algebra library
CASC'05 Proceedings of the 8th international conference on Computer Algebra in Scientific Computing
Hi-index | 0.00 |
We apply the notion of design patterns to optimizations performed by designers of software libraries, focusing especially on object-oriented numerical libraries. We formalize three design patterns that we have abstracted from many existing libraries and discuss the role of these formalizations as a tool for guiding compiler optimizers. These optimizers operate at a very high level that would otherwise be left unoptimized by traditional optimizers. Finally, we discuss the implementation of a design pattern-based compiler optimizer for C++ abstract data types.