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… 

Tables from this paper

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 the

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.

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.

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.

Object-oriented algorithm analysis and design with Java

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.

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.

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.

A language for generic programming in the large

Generic Programming

It is argued that generically programmed software component libraries have important advantages for achieving software productivity and reliability.



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.

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.

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.

Generic Library Linear Data Structure Packages, Vol. 1, to appear as a General Electric Corporate Research and Development

  • 1987