Uncommon · Knowledge
Generic programming
Way of designing and writing programs where algorithms are written in terms of parametric types enabling easy reuse
Generic programming is a style of computer programming in which algorithms are written in terms of data types to-be-specified-later that are then instantiated when needed for specific types provided as parameters. This approach, pioneered in the programming language ML in 1973, permits writing common functions or data types that differ only in the set of types on which they operate when used, thus reducing duplicate code.
From Wikipedia
Generic programming is a style of computer programming in which algorithms are written in terms of data types to-be-specified-later that are then instantiated when needed for specific types provided as parameters. This approach, pioneered in the programming language ML in 1973, permits writing common functions or data types that differ only in the set of types on which they operate when used, thus reducing duplicate code. Generic programming was introduced to the mainstream with Ada in 1977. With templates in C++, generic programming became part of the repertoire of professional library design. The techniques were further improved and parameterized types were introduced in the influential 1994 book Design Patterns. New techniques were introduced by Andrei Alexandrescu in his 2001 book Modern C++ Design: Generic Programming and Design Patterns Applied. Subsequently, D implemented the same ideas. Such software entities are known as generics in Ada, C#, Dart, Delphi, Eiffel, F#, Java, Mojo, Nim, Python, Go, Rust, Swift, TypeScript, and Visual Basic (.NET). They are known as parametric polymorphism in ML, Scala, Julia, and Haskell. (Haskell terminology also uses the term generic for a related but somewhat different concept.) The term generic programming was originally coined by David Musser and Alexander Stepanov in a more specific sense than the above, to describe a programming paradigm in which fundamental requirements on data types are abstracted from across concrete examples of algorithms and data structures and formalized as concepts, with generic functions implemented in terms of these concepts, typically using language genericity mechanisms as described above.
Text: Wikipédia, CC BY-SA 4.0. ·
Related cards
-
★★★
Extreme programming
Software development methodology which intends to improve software quality and responsiveness to changing customer requirements
-
★★★
Geomatics
Geographic data discipline
-
★★★
PRINCE2
Project management method
-
M★★
Make (software)
Standard UNIX utility and programming language for build automation
-
O★
OpenEdge Advanced Business Language
Business application development language
-
★★★★★★
C (programming language)
General-purpose programming language
-
i★★
instruction
Single operation of a computer
-
I★★
IBM RPG
Programming language from IBM
-
★
Sorting
Action of arranging objects into order
-
★★
Pawn
Programming language
-
G★★★
Generative engine optimization
Digital marketing technique to improve visibility in generative AI search engines
-
★★
J (programming language)
Programming language
-
T★
Tiny BASIC
Dialect of the BASIC programming language
-
C★★
C++11
2011 edition of the C++ programming language standard
-
C★
Caml
Dialect of the ML programming language family
-
★★
Io (programming language)
Programming language
-
★★★
Ruby (programming language)
General-purpose programming language
-
L★
LZ78
Data compression algorithm