1993 · 125 citations · 8 references
ComputingComputer EngineeringComputer ScienceComputer ArchitectureData StructuresProgramming LanguagesCompiler ConstructionData Structure AlgorithmsData Structure DesignLibrary ConstructionSoftware ArchitectureSoftware ConstructionLibrary Construction MethodologyMemory AllocationProductivitySoftware Libraries
Many software libraries (e.g., the Booch C++ Components, libg++, NIHCL, COOL) provide components (classes) that implement data structures. Each component is written by hand and represents a unique combination of features (e.g. concurrency, data structure, memory allocation algorithms) that distinguishes it from other components. We argue that this way of building data structure component libraries is inherently unscalable. Libraries should not enumerate complex components with numerous features; rather, libraries should take a minimalist approach: they should provide only primitive building blocks and be accompanied by generators that can combine these blocks to yield complex custom data structures. In this paper, we describe a prototype data structure generator and the building blocks that populate its library. We also present preliminary experimental results which suggest that this approach does not compromise programmer productivity nor the run-time performance of generated data structures.
8
O. Deux · Communications of the ACM · 1991 · 257 citations · Full text
Computing, Information Technology, Copyright Infringement +4
GENESIS: an extensible database management system
D.S. Batoory, Jane Barnett, Jorge F. Garza et al. · IEEE Transactions on Software Engineering · 1988 · 233 citations
Reusing and Interconnecting Software Components
Index support for rule activation
David A. Brant, Daniel P. Miranker · 1993 · 43 citations