The C++ programming language
Garbage collection in an uncooperative environment
Software—Practice & Experience
Object oriented design with applications
Object oriented design with applications
Shared-Memory Parallel Programming in C++
IEEE Software
Introduction to the literature on object-oriented design, programming, and languages
ACM SIGPLAN OOPS Messenger
Assessing Ada 9X OOP: building a reusable components library
TRI-Ada '92 Proceedings of the conference on TRI-Ada '92
HOPL-II The second ACM SIGPLAN conference on History of programming languages
Efficient implementation of adaptive software
ACM Transactions on Programming Languages and Systems (TOPLAS)
Software components in a data structure precompiler
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Predicting memory use from a class diagram using dynamic information
Proceedings of the 1st international workshop on Software and performance
The composition of abstractions: evolution of software component design with Ada 95
Proceedings of the conference on TRI-Ada '95: Ada's role in global markets: solutions for a changing complex world
Efficient Implementations of Software Architectures via Partial Evaluation
Automated Software Engineering
A survey of object-oriented reuse
CASCON '95 Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
Designing reliable systems from reliable components using the context-dependent constraint concept
ISSRE '96 Proceedings of the The Seventh International Symposium on Software Reliability Engineering
Concurrency abstractions in a C++ class library
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: distributed computing - Volume 2
History of programming languages---II
Hi-index | 0.00 |
This paper describes design issues encountered developing a reusable component library. The design applied encapsulation, inheritance, composition and type parameterization. The implementation uses various C++ mechanisms, including: virtual and static member functions, templates, and exceptions.The resulting library contains about 500 components (mostly template classes and functions) and an optional utility for instantiating templates. The components provide variations of basic collection/container abstractions with various time and space complexities.A key insight gained from this project: the design process centered on developing a “template for the templates” — designing a component framework and orderly process for generating the template classes.