Difference between revisions of "Generic Programming"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
Line 34: | Line 34: | ||
* [https://en.wikipedia.org/wiki/Generic_programming Generic programming from Wikipedia] | * [https://en.wikipedia.org/wiki/Generic_programming Generic programming from Wikipedia] | ||
* [https://en.wikipedia.org/wiki/Generic Generic from Wikipedia] | * [https://en.wikipedia.org/wiki/Generic Generic from Wikipedia] | ||
− | * [http://www.cs.rpi.edu/%7Emusser/gp/ Generic Programming] by [ | + | * [http://www.cs.rpi.edu/%7Emusser/gp/ Generic Programming] by [[Mathematician#DMusser|David Musser]] |
− | |||
− | |||
* [https://en.wikipedia.org/wiki/Generic_function Generic function from Wikipedia] | * [https://en.wikipedia.org/wiki/Generic_function Generic function from Wikipedia] | ||
* [https://en.wikipedia.org/wiki/Metaprogramming Metaprogramming from Wikipedia] | * [https://en.wikipedia.org/wiki/Metaprogramming Metaprogramming from Wikipedia] | ||
Line 46: | Line 44: | ||
{{Cpp Templates}} | {{Cpp Templates}} | ||
==[[C sharp|C#]]== | ==[[C sharp|C#]]== | ||
− | * [ | + | * [https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/index Generics (C# Programming Guide)], [https://en.wikipedia.org/wiki/Microsoft_Developer_Network MSDN] |
− | |||
==[[Java]]== | ==[[Java]]== | ||
* [https://en.wikipedia.org/wiki/Generics_in_Java Generics in Java from Wikipedia] | * [https://en.wikipedia.org/wiki/Generics_in_Java Generics in Java from Wikipedia] | ||
− | |||
==[[Delphi]]== | ==[[Delphi]]== |
Latest revision as of 18:38, 23 January 2019
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