1Many 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.
IntroductionSoftware libraries are a popular means of boosting programmer productivity and reducing software development time and cost. We claim that today's method of constructing libraries is inherently unscalable. Every time a new feature is added -such as choosing between persistent data structures and nonpersistent data structures -the number of components in the library doubles. The number of features that are represented in contemporary libraries is just a small fraction of those that are actually needed. In fact, most data structures in database systems, operating systems, and compilers are far more complicated than those offered in today's libraries. No library constructed by the current means could ever possibly hope to encompass the enormous spectrum of data structures that arise in practice. Clearly, a new strategy for building data structure libraries is needed.To be scalable, libraries must offer much more primitive building blocks and be accompanied by generators that compose blocks to yield the data structures needed by application programmers. In this paper, we propose a generative means for realizing scalable data structure libraries. The composition techniques that we propose are based on the GenVoca model [Bat92b], a model for constructing hierarchical software systems from reusable components. The techniques that we use do not rely on inheritance as offered by contemporary object-oriented languages. Instead, GenVoca models system implementations as combinations of layered software components.We begin by examining the designs of two component libraries and identifying their limitations and weaknesses. We then explain our generative approach that relies on a layered composition of
Three-dimensional SD-OCT allows a spatial visualisation and documentation of retinal elevation. It also allows a detailed visualisation of the secondary retinal pigment epithelial and intraretinal changes and is helpful in monitoring the response to medication.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.