Table of Contents Author Guidelines Submit a Manuscript
Scientific Programming
Volume 11, Issue 4, Pages 309-320

Design Patterns for Library Optimization

Douglas Gregor,1 Sibylle Schupp,2 and David R. Musser1

1Department of Computer Science, Rensselaer Polytechnic Institute, 110 8th Street, Troy, NY 12180, USA
2Department of Computing Science, Chalmers University of Technology, SE-41296 Gothenburg, Sweden

Received 2 December 2003; Accepted 2 December 2003

Copyright © 2003 Hindawi Publishing Corporation. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.


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.