Results 1 -
6 of
6
Generic Programming
- Symbolic and algebraic computation: ISSAC ’88
, 1988
"... Generic programming centers around the idea of abstracting from concrete, efficient algorithms to obtain generic algorithms that can be combined with different data representations to produce a wide variety of useful software. For example, a class of generic sorting algorithms can be defined which w ..."
Abstract
-
Cited by 58 (2 self)
- Add to MetaCart
Generic programming centers around the idea of abstracting from concrete, efficient algorithms to obtain generic algorithms that can be combined with different data representations to produce a wide variety of useful software. For example, a class of generic sorting algorithms can be defined which work with finite sequences but which can be instantiated in different ways to produce algorithms working on arrays or linked lists. Four kinds of abstraction---data, algorithmic, structural, and representational--- are discussed, with examples of their use in building an Ada library of software components. The main topic discussed is generic algorithms and an approach to their formal specification and verification, with illustration in terms of a partitioning algorithm such as is used in the quicksort algorithm. It is argued that generically programmed software component libraries offer important advantages for achieving software productivity and reliability. This paper was presented at the...
Component Programming - a Fresh Look at Software Components
- In Proceedings of 5th ESEC
, 1995
"... All engineering disciplines rely on standard components to design and build artifacts. The key technical challenge in software engineering is to enable the adoption of such a model to the development of software. The transformationfrom line-by-line development to component-based development will add ..."
Abstract
-
Cited by 20 (0 self)
- Add to MetaCart
All engineering disciplines rely on standard components to design and build artifacts. The key technical challenge in software engineering is to enable the adoption of such a model to the development of software. The transformationfrom line-by-line development to component-based development will address many of the industry’s productivity and quality problems. Indeed, component-based software development has been a long- standing dream of the software industry, prompting a search for both technical and nontechnical solutions. A successful approach to component- based development requires a comprehensive solution that draws on advances in programming languages, programming paradigms, algorithm analysis, and software design. The technical problem can only be addressed by such an integrated solution. This paper presents an approach based on the C++ Standard Template Library. More than a traditional library, STL embodies a concrete approach to software design based on a well-defined taxonomy and theory of software components. I present the fundamental contributions of STL to a paradigm of component programming-a component-based software development paradigm in which there is a clear separation between component development and application development. I motivate component programming, give the requirements for components and catalogs, and give an example of component programming applied to the standard Keyword in Context (KWIC) problem. I then summarize the implications of component programming for the software industry and for software engineering education.
Automatic Component Adaptation By Concurrent State Machine Retrofitting
- Fakultat fur Informatik, Universitat Karlsruhe, Am Fasanengarten 5, D-76128
, 2000
"... . 1 It is a common wisdom of component technology that reuse is not obtained automatically: one has to design for reuse; and reusability has to be preserved as a key quality through design, implementation and maintenance. Besides other technologies aiming at reuse, the component based approach ..."
Abstract
-
Cited by 9 (4 self)
- Add to MetaCart
. 1 It is a common wisdom of component technology that reuse is not obtained automatically: one has to design for reuse; and reusability has to be preserved as a key quality through design, implementation and maintenance. Besides other technologies aiming at reuse, the component based approach gains increasing attention. Although the idea of reusing prefabricated software components is not new, many obstacles hinder reuse and make it hard to achieve the benets of reuse in practice. In general few components are reused as they are. Often, available components are incompatible with what is required. This necessitates extensions or adaptations. In this paper we develop a method assisting the software engineer in identifying the detailed causes for incompatibility and systematically overcoming them. Our method also permits the synthesis of common adapters, coercing incompatible components into meeting requirements. 1 Introduction It is a common wisdom of component technol...
Implementing the C++ Standard Template Library in Ada 95
- in ADA, Rensselaer Polytechnic Institute
, 1996
"... The Standard Template Library (STL), a recent addition to the ANSI C++ stan-dard, \provides a set of well structured generic C++ components that work together in a seamless way " [SL94]. The popularity of STL stems from its combination of an orthogonal design, solid theoretical foundation, and ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
The Standard Template Library (STL), a recent addition to the ANSI C++ stan-dard, \provides a set of well structured generic C++ components that work together in a seamless way " [SL94]. The popularity of STL stems from its combination of an orthogonal design, solid theoretical foundation, and strong emphasis on e ciency. This paper presents a design scheme for implementing the C++ STL library components in Ada, using features introduced in the 1995 Ada standard [Ada95a]. Discussion is based on a prototype Ada 95 implementation, segments of which illustrate the paper. This work was prepared under the supervision of Dr. David Musser at Rensselaer Polytechnic
Engineering 'Unbounded' Reusable Ada Generics
- Proceedings of the Tenth National Conference on Ada Technology, ANCOST, Inc
, 1992
"... Most current programming languages (including Ada) provide some means of allowing the programmer to dynamically allocate and deallocate heap storage. This permits construction of “unbounded ” abstract data types, e.g., stacks, queues, one-way lists, etc. Unfortunately, the addition of dynamically al ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Most current programming languages (including Ada) provide some means of allowing the programmer to dynamically allocate and deallocate heap storage. This permits construction of “unbounded ” abstract data types, e.g., stacks, queues, one-way lists, etc. Unfortunately, the addition of dynamically allocated storage to the implementation of abstract data types is a complicated business. Unless special care is taken, it can lead to problems of storage leaks, dangling references, unwanted aliasing, and unexpected lengthy execution times (due to storage allocation and reclamation), among others. We propose a specific discipline for avoiding these problems. 1.
How to Use a Library?
"... Containers are well-known data structures in computer science, and so are search routines. What is it, then, that makes the Standard Template Library [2,9,14] —a library of containers and search routines—a source of inspiration for programmers ..."
Abstract
- Add to MetaCart
Containers are well-known data structures in computer science, and so are search routines. What is it, then, that makes the Standard Template Library [2,9,14] —a library of containers and search routines—a source of inspiration for programmers

