Generic Programming
Home * Programming * Generic Programming
Generic Programming,
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 [1], David Musser and Deepak Kapur, and obtained success in C++ when the Standard Template Library became ANSI/ISO C++ standard [2].
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.
Contents
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 LNCS 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 1766, Springer, pdf
- Matthew H. Austern (1999). Generic Programming and the STL: Using and Extending the C++ Standard Template Library. Addison-Wesley
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 function from Wikipedia
- Metaprogramming from Wikipedia
- Multiple inheritance from Wikipedia
- Operator overloading from Wikipedia
- Polymorphism from Wikipedia
C++
- Template (programming) from Wikipedia
- List of C++ template libraries from Wikipeadia
- Standard Template Library from Wikipedia
- Loki (C++) from Wikipedia by Andrei Alexandrescu as part of his book Modern C++ Design.
- Boost (C++ libraries) from Wikipedia
- Templates - C++ Documentation
- Metaprogramming in C++
- C++ Programming/Templates from Wikibooks
- Template Meta-Programming from Wikibooks
- Barton–Nackman trick from Wikipedia
- Curiously recurring template pattern from Wikipedia
- Variadic template from Wikipedia