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.
- G. Booch, Software Components in Ada. Benjamin/Cummings, 1987.
- O.-J. Dahl, E. W. Dijkstra, and C. A. R. Hoare, Structured Programming, Academic Press, 1972.
- E. W. Dijkstra, A Discipline of Programming, Prentice-Hall, Englewood Cliffs, New Jersey, 1976.
- J. Goguen, “Parameterized Programming,” Transactions on Software Engineering, SE-10(5):528–543, September 1984.
- A. Kershenbaum, D. R. Musser and A. A. Stepanov, “Higher Order imperative Programming,” Computer Science Dept. Rep. No. 88-10, Rensselaer Polytechnic Institute, Troy, New York, April 1988.
- D. R. Musser and A. A. Stepanov, “A Library of Generic Algorithms in Ada,” Proc. of 1987 ACM SIGAda International Conference, Boston, December, 1987.
- D. R. Musser and A. A. Stepanov, Ada Generic Library Linear Data Structure Packages, Volumes 1 and 2, General Electric Corporate Research and Development Reports 88CRD112 and 88CRD113, April 1988.
- G. L. Steele, Common LISP: The Language, Digital Press, 1984.
- N. Wirth, Algorithms + Data Structures = Programs, Prentice-Hall, 1976.
- Generic programming
- Book Title
- Symbolic and Algebraic Computation
- Book Subtitle
- International Symposium ISSAC '88 Rome, Italy, July 4–8, 1988 Proceedings
- pp 13-25
- Print ISBN
- Online ISBN
- Series Title
- Lecture Notes in Computer Science
- Series Volume
- Series ISSN
- Springer Berlin Heidelberg
- Copyright Holder
- Additional Links
- eBook Packages
To view the rest of this content please follow the download PDF link above.