A library of generic algorithms in Ada

  title={A library of generic algorithms in Ada},
  author={David R. Musser and Alexander A. Stepanov},
  booktitle={SIGAda '87},
It is well-known that data abstractions are crucial to good software engineering practice. We argue that algorithmic abstractions, or generic algorithms, are perhaps even more important for software reusability. Generic algorithms are parameterized procedural schemata that are completely independent of the underlying data representation and are derived from concrete, efficient algorithms. We discuss this notion with illustrations from the structure of an Ada library of reusable software… Expand
Algorithm‐oriented generic libraries
We outline an approach to construction of software libraries in which generic algorithms (algorithmic abstractions) play a more central role than in conventional software library technology or in theExpand
Algorithm-Oriented Generic Software Library Development
An approach to construction of software libraries in which generic algorithms (algorithmic abstractions) playa more central role than in conventional software library technology or in the objectoriented programming paradigm is outlined. Expand
Essential language support for generic programming
This paper presents the design of a type system and semantics for concepts that is suitable for non-type-inferencing languages and shares much in common with the type classes of Haskell, though the primary influence is from best practices in the C++ community. Expand
An Approach for Constructing Reusable Software Components in Ada
A companion to IDA Paper P-2494, Strategy and Mechanisms for Encouraging Reuse in the Acquisition of SDI Software focuses on the Ada programming language, and the problems software engineers may encounter when designing components in this language. Expand
Object-oriented algorithm analysis and design with Java
A new approach to algorithm design and analysis that benefits from the OO characteristics of Java, which takes advantage of Java's organization to build the inheritance trees for the classes, and Java's interfaces, collections, comparators, and iterators. Expand
Programming in Algorithms : Generic Programming and its Implementation
This paper explores the implementation of generic programming, a powerful programming technique, in four modern programming languages (C++, C#, Java, and Haskell), and builds a coherent theory of trade-o s in language design and how those trade-O s can be minimized. Expand
Language requirements for large-scale generic libraries
An overview of G, a language designed to provide first-class language support for generic programming and large-scale libraries, is presented and the interdependence between language features and library design is analyzed in light of a complete implementation of the Standard Template Library using G. Expand
Requirement Oriented Programming
This work studies the concept of genericity and generic concepts and calls for a common effort to establish and maintain generic libraries. Expand
A language for generic programming in the large
This article presents the rationale for the design of G and demonstrates the expressiveness of G with two case studies: porting the Standard Template Library and the Boost Graph Library from C++ to G. Expand
Generic Programming
It is argued that generically programmed software component libraries have important advantages for achieving software productivity and reliability. Expand


Structured programming
The first monograph has suggested that in analysing a problem and groping towards a solution, a programmer should take advantage of abstract concepts such as sets, sequences, and mappings; and judiciously postpone decisions on representation until he is constructing the more detailed code of the program. Expand
Software tools in Pascal
Software Tools in Pascal is written to teach how to write good Pascal programs that make good tools, and all programmers, professional and student, will find the book invaluable as a source of proven, useful programs for reading and study. Expand
Common Lisp the Language
This greatly expanded edition of the defacto standard is written by the Vice- Chairman of X3J13 (the ANSI committee responsible for the standardization of Common Lisp) and contains the entire text of the first edition plus six completely new chapters. Expand
Generic Library Linear Data Structure Packages, Vol. 1, to appear as a General Electric Corporate Research and Development
  • 1987