Changes

Jump to: navigation, search

Generic Programming

7,298 bytes added, 18:18, 23 January 2019
Created page with "'''Home * Programming * Generic Programming''' '''Generic Programming''' is a [https://en.wikipedia.org/wiki/Programming_paradigm programming paradigm] to w..."
'''[[Main Page|Home]] * [[Programming]] * Generic Programming'''

'''Generic Programming''' is a [https://en.wikipedia.org/wiki/Programming_paradigm programming paradigm] to write efficient, [https://en.wikipedia.org/wiki/Code_reuse reusable] code and [https://en.wikipedia.org/wiki/Library_%28computing%29 software libraries], to operate on any [[Data|data type]], required being passed as a parameter, in [[Cpp|C++]] a [https://en.wikipedia.org/wiki/Compile_time compile time] [https://en.wikipedia.org/wiki/TypeParameter type parameter].
Generic programming, first implemented in the [[Ada]] programming language, was pioneered by [https://en.wikipedia.org/wiki/Alexander_Stepanov Alexander Stepanov] <ref>[http://www.stlport.org/resources/StepanovUSA.html STLport: An Interview with A. Stepanov] by [http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/r/Russo:Graziano_Lo.html Graziano Lo Russo]</ref>, [[Mathematician#DMusser|David Musser]] and [[Mathematician#DKapur|Deepak Kapur]], and obtained success in C++ when the [https://en.wikipedia.org/wiki/Standard_Template_Library Standard Template Library] became ANSI/ISO C++ standard <ref>[http://www.open-std.org/jtc1/sc22/wg21/ SO/IEC JTC1/SC22/WG21 - The C++ Standards Committee]</ref>.
Generic programming invokes a [https://en.wikipedia.org/wiki/Metaprogramming 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 [https://en.wikipedia.org/wiki/Template_%28programming%29 Template-] or metaprogramming. For instance in computer chess programming, it allows to write [[Color|color]] dependent routines once, and disband otherwise conditional code at compile-time.

=Selected Publications=
<ref>[http://www.stepanovpapers.com/ Collected Papers of Alexander A. Stepanov]</ref>
==1980==
* [[Mathematician#DKapur|Deepak Kapur]], [[Mathematician#DMusser|David Musser]], [https://en.wikipedia.org/wiki/Alexander_Stepanov Alexander Stepanov] ('''1981'''). ''[http://portal.acm.org/citation.cfm?doid=942572.806763 Operators and Algebraic Structures]''. [http://www.stepanovpapers.com/p59-kapur.pdf pdf]
* [[Mathematician#DKapur|Deepak Kapur]], [[Mathematician#DMusser|David Musser]], [https://en.wikipedia.org/wiki/Alexander_Stepanov Alexander Stepanov] ('''1981'''). ''TECTON: A Language for Manipulating Generic Objects''. in [http://www.itu.dk/people/jst/ J. Staunstrup], editor, [[LNCS]], Vol. 134, [[Springer]], [http://www.stepanovpapers.com/Tecton.pdf pdf]
* [[Mathematician#DMusser|David Musser]], [https://en.wikipedia.org/wiki/Alexander_Stepanov Alexander Stepanov] ('''1988'''). ''Generic Programming''. ISSAC 1988, [http://www.stepanovpapers.com/genprog.pdf pdf]
==1990 ...==
* [https://en.wikipedia.org/wiki/Alexander_Stepanov Alexander Stepanov] ('''1991'''). ''Design of Generic Libraries''. Lecture given at SRI, [http://www.stepanovpapers.com/DesignOfGenericLibraries.pdf pdf]
* [[Andrew Koenig]] ('''1994'''). ''Templates and Generic Algorithms''. [http://dblp.dagstuhl.de/db/journals/joop/joop7.html#Koenig94b JOOP 7 No. 3]
* [[Andrew Koenig]] ('''1994'''). ''Generic Iterators''. [http://dblp.dagstuhl.de/db/journals/joop/joop7.html#Koenig94d JOOP 7, No. 5]
* [https://en.wikipedia.org/wiki/Alexander_Stepanov Alexander Stepanov], [https://en.wikipedia.org/wiki/Meng_Lee Meng Lee] ('''1995'''). ''[http://www.hpl.hp.com/techreports/95/HPL-95-11.html The Standard Template Library]''. HP Laboratories Technical Report 95-11, [http://www.stepanovpapers.com/STL/DOC.PDF pdf]
* [[Mathematician#JCDehnert|James C. Dehnert]], [https://en.wikipedia.org/wiki/Alexander_Stepanov Alexander Stepanov] ('''1998'''). ''[http://portal.acm.org/citation.cfm?id=724183 Fundamentals of Generic Programming]''. [[LNCS]], [http://www.stepanovpapers.com/DeSt98.pdf pdf]
* [http://lafstern.org/matt/ Matthew H. Austern] ('''1999'''). ''Generic Programming and the STL: Using and Extending the C++ Standard Template Library''. [https://en.wikipedia.org/wiki/Addison-Wesley Addison-Wesley], ISBN-13: 978-0201309560, [http://www.amazon.com/exec/obidos/ASIN/0201309564/hebrewlanguagere/ amazon.com]
==2000 ...==
* [https://en.wikipedia.org/wiki/P._J._Plauger P.J. Plauger], [https://en.wikipedia.org/wiki/Meng_Lee Meng Lee], [[Mathematician#DMusser|David Musser]], [https://en.wikipedia.org/wiki/Alexander_Stepanov Alexander Stepanov] ('''2000'''). ''C++ Standard Template Library''. [https://en.wikipedia.org/wiki/Prentice_Hall Prentice Hall]
* [[Mathematician#AAlexandrescu|Andrei Alexandrescu]] ('''2001'''). ''[https://en.wikipedia.org/wiki/Modern_C%2B%2B_Design Modern C++ Design: Generic Programming and Design Patterns Applied]''.
==2010 ...==
* [[Mathematician#SWeirich|Stephanie Weirich]] ('''2010'''). ''[https://www.seas.upenn.edu/~sweirich/ssgip/ Generic Programming With Dependent Types]''. [http://www.comlab.ox.ac.uk/projects/gip/school.html Spring School on Generic and Indexed Programming], [https://en.wikipedia.org/wiki/Wadham_College,_Oxford Wadham College, Oxford]
* [https://en.wikipedia.org/wiki/Alexander_Stepanov Alexander Stepanov], [https://www.thriftbooks.com/a/daniel-e-rose/1522625/ Daniel E. Rose] ('''2015'''). ''[http://fm2gp.com/ From Mathematics to Generic Programming]''. [https://en.wikipedia.org/wiki/Addison-Wesley Addison-Wesley]

=Forum Posts=
* [http://www.talkchess.com/forum/viewtopic.php?t=42046 C++ templates question] by [[José C. Martínez Galán]], [[CCC]], January 18, 2012
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=57274 C++ auto-expanding vector class template] by [[Steven Edwards]], [[CCC]], August 15, 2015

=External Links=
* [https://en.wikipedia.org/wiki/Generic_programming Generic programming from Wikipedia]
* [https://en.wikipedia.org/wiki/Generic Generic from Wikipedia]
* [http://www.cs.rpi.edu/%7Emusser/gp/ Generic Programming] by [https://en.wikipedia.org/wiki/David_Musser David Musser]
* [http://www.generic-programming.org/ Generic Programming]
: [http://www.generic-programming.org/about/intro/ An Introduction to Generic Programmin] by [http://osl.iu.edu/%7Edgregor/ Douglas Gregor]
* [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/Multiple_inheritance Multiple inheritance from Wikipedia]
* [https://en.wikipedia.org/wiki/Operator_overloading Operator overloading from Wikipedia]
* [https://en.wikipedia.org/wiki/Polymorphism_%28computer_science%29 Polymorphism from Wikipedia]

==[[Cpp|C++]]==
{{Cpp Templates}}
==[[C sharp|C#]]==
* [http://msdn.microsoft.com/en-us/library/512aeb7t.aspx Generics (C# Programming Guide)], [https://en.wikipedia.org/wiki/Microsoft_Developer_Network MSDN]
* [http://msdn.microsoft.com/de-de/magazine/cc163683%28en-us%29.aspx .NET Column: Introducing Generics in the CLR] by Jason Clark

==[[Java]]==
* [https://en.wikipedia.org/wiki/Generics_in_Java Generics in Java from Wikipedia]
* [http://download.oracle.com/javase/6/docs/technotes/guides/language/generics.html Generics in Java]

==[[Delphi]]==
* [http://www.drbob42.com/examines/examinA4.htm Dr.Bob Examines - Delphi 2009 Generics]

=References=
<references />
'''[[Programming|Up one Level]]'''

Navigation menu