1993 · 78 citations · 8 references
Software MaintenanceBooch C++ ComponentsBuilding BlocksEngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringData StructureSoftware AnalysisParallel ComputingScalable Software LibrariesHigh-level Programming LanguageCompiler SupportComputer EngineeringComputer ScienceOptimizing CompilerSoftware DesignScalable ComputingPerformance ScalabilityProgram AnalysisObject-oriented ProgrammingParallel ProgrammingPerformance PortabilitySystem Software
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 · 256 citations · Full text
Reusing and Interconnecting Software Components
Goguen · Computer · 1986 · 209 citations
Software Maintenance, Engineering, Computer Architecture +23
GENESIS: an extensible database management system
D.S. Batoory, Jane Barnett, Jorge F. Garza et al. · IEEE Transactions on Software Engineering · 1988 · 201 citations
Index support for rule activation
David A. Brant, Daniel P. Miranker · 1993 · 42 citations