Foundations of an adaptable container library

M.Sc. Thesis by Bo Simonsen


Abstract

The STL is a collection of generic containers and algorithms; the interfaces of those are specified in the C++ standard. The components in the STL are written in such a way that they can be used directly in application development. The CPH STL is an enhanced version of the STL; the significant enhancement in the CPH STL is that it provides containers with different trade-offs with respect to performance, space efficiency, and safety.

This thesis is a complete design specification of the entire library. This design specification consists of three parts: The first part is the specification of the architecture of the library. Along with this specification, we define the different concepts for individual components, but we provide no implementation details. The second part is a complete design for the vector container. We introduce component frameworks for STL containers, which give a high degree of code reuse and flexibility from the user's point of view. In the third (and last) part we identify the problems related to the use of component frameworks, and provide solutions to these problems.

The key contribution of this thesis is that the architecture and the design described can be used as a starting point for designing future generic program libraries. Also, the problems related to the use of component frameworks are recurring in context of the C++ programming language. Therefore we expect that C++ programmers will find this part interesting as well.


The following files are available for download: