HP Labs Technical Reports
Click here for full text:
Algorithm-Oriented Generic Software Library Development
Stepanov, Alexander A.; Musser, David
Abstract: We outline an approach to construction of software libraries in which generic algorithms (algorithmic abstractions) play a more central role than in con- ventional software library technology or in the ob- ject-oriented programming paradigm. Our approach is to consider algorithms first, decide what types and access operations they need for efficient excution and regard the types and operations as formal parameters that can be instantiated in many different ways, as long as the actual parameters satisfy the assumputions on which the correctness and effciency of the algor- ithms are based. The means by which instantiation is carried out is language dependent; in the C++ examples in this paper we instantiate generic algorithms by con- structing classes that define the needed types and access operations. By use of such compile-time tech- niques and careful attention to algorithmic issues, it is possible to construct software components of broad utility with no sacrifice of efficiency.
Back to Index