Generic Programming

Home * Programming * Generic Programming

Generic Programming is a programming paradigm to write efficient, reusable code and software libraries, to operate on any data type, required being passed as a parameter, in C++ a compile time type parameter. Generic programming, first implemented in the Ada programming language, was pioneered by Alexander Stepanov, David Musser and Deepak Kapur, and obtained success in C++ when the Standard Template Library became ANSI/ISO C++ standard. Generic programming invokes a metaprogramming facility within a language, in those languages supporting it. In C++, template paramater are either types or integer constants for the wider range of Template- or metaprogramming. For instance in computer chess programming, it allows to write color dependent routines once, and disband otherwise conditional code at compile-time.

=Selected Publications=

1980

 * Deepak Kapur, David Musser, Alexander Stepanov (1981). Operators and Algebraic Structures. pdf
 * Deepak Kapur, David Musser, Alexander Stepanov (1981). TECTON: A Language for Manipulating Generic Objects. in J. Staunstrup, editor, LNCS, Vol. 134, Springer, pdf
 * David Musser, Alexander Stepanov (1988). Generic Programming. ISSAC 1988, pdf

1990 ...

 * Alexander Stepanov (1991). Design of Generic Libraries. Lecture given at SRI, pdf
 * Andrew Koenig (1994). Templates and Generic Algorithms. JOOP 7 No. 3
 * Andrew Koenig (1994). Generic Iterators. JOOP 7, No. 5
 * Alexander Stepanov, Meng Lee (1995). The Standard Template Library. HP Laboratories Technical Report 95-11, pdf
 * James C. Dehnert, Alexander Stepanov (1998). Fundamentals of Generic Programming. LNCS, pdf
 * Matthew H. Austern (1999). Generic Programming and the STL: Using and Extending the C++ Standard Template Library. Addison-Wesley, ISBN-13: 978-0201309560, amazon.com

2000 ...

 * P.J. Plauger, Meng Lee, David Musser, Alexander Stepanov (2000). C++ Standard Template Library. Prentice Hall
 * Andrei Alexandrescu (2001). Modern C++ Design: Generic Programming and Design Patterns Applied.

2010 ...

 * Stephanie Weirich (2010). Generic Programming With Dependent Types. Spring School on Generic and Indexed Programming, Wadham College, Oxford
 * Alexander Stepanov, Daniel E. Rose (2015). From Mathematics to Generic Programming. Addison-Wesley

=Forum Posts=
 * C++ templates question by José C. Martínez Galán, CCC, January 18, 2012
 * C++ auto-expanding vector class template by Steven Edwards, CCC, August 15, 2015

=External Links=
 * Generic programming from Wikipedia
 * Generic from Wikipedia
 * Generic Programming by David Musser
 * Generic Programming
 * An Introduction to Generic Programmin by Douglas Gregor


 * Generic function from Wikipedia
 * Metaprogramming from Wikipedia
 * Multiple inheritance from Wikipedia
 * Operator overloading from Wikipedia
 * Polymorphism from Wikipedia

C#

 * Generics (C# Programming Guide), MSDN
 * .NET Column: Introducing Generics in the CLR by Jason Clark

Java

 * Generics in Java from Wikipedia
 * Generics in Java

Delphi

 * Dr.Bob Examines - Delphi 2009 Generics

=References= Up one Level