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.
Nº Q1051282 ★★
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
-
S
SNOBOL4
Programming language tailored to complex pattern matching and text manipulation
Nº Q121288716 ★
Not listed
-
I
Interpreted language
Programming language for which most of its implementations execute instructions directly
Nº Q1993334 ★★
Not listed
-
D
Declarative programming
Programming paradigm that expresses the logic of a computation without describing its control flow
Nº Q531152 ★★
Not listed
-
Stata
Statistical software package
Nº Q1204300 ★
Not listed
-
U
UNIMARC
Universal MARC format developed by IFLA
Nº Q2755217 ★
Not listed
-
FROG
Block cipher
Nº Q3063412 ★
Not listed
-
Prompt engineering
Creation or optimization of a prompt to be given to an artificial intelligence model
Nº Q108941486 ★★★
Not listed
-
B
Bc (programming language)
UNIX utility which implements an arbitrary-precision arithmetic language
Nº Q300897 ★★
Not listed
-
Sed
Standard UNIX utility for editing streams of data
Nº Q305876 ★★
Not listed
-
PNG
Family of lossless compression bitmap image file formats
Nº Q178051 ★★★
Not listed
-
P
Procedural programming
Programming paradigm
Nº Q1418502 ★★★
Not listed
-
Adele Goldberg (computer scientist)
American computer scientist (born 1945)
Nº Q11605 ★
Not listed
-
Constraint programming
Programming paradigm wherein relations between variables are stated in the form of constraints
Nº Q528588 ★
Not listed
-
L
LZ77
Lossless data compression algorithm
Nº Q2675 ★
Not listed
-
AMD64
AMD implementation of the x86_64 instruction set architecture
Nº Q16525012 ★★
Not listed
-
International Data Encryption Algorithm
Symmetric-key block cipher
Nº Q848204 ★
Not listed
-
OpenCL
Open standard for programming heterogenous computing systems, such as CPUs or GPUs
Nº Q681360 ★★
Not listed
-
Extreme programming
Software development methodology which intends to improve software quality and responsiveness to changing customer requirements
Nº Q209711 ★★★
Not listed