Table of Contents
118 relations: Abstract algebra, Ada (programming language), Alexander Stepanov, Algorithm, Analysis of algorithms, Andrei Alexandrescu, Array (data type), Association for Computing Machinery, Associative array, Attribute (computing), Banach space, BETA (programming language), Binary tree, Bjarne Stroustrup, Boilerplate code, Boxing (computer science), C (programming language), C Sharp (programming language), C++, Clean (programming language), CLU (programming language), Code bloat, Communication protocol, Comparison of Java and C++, Compile time, Compile-time function execution, Compiler, Complex number, Computer programming, Concept (generic programming), Concepts (C++), Container (abstract data type), Covariance and contravariance (computer science), D (programming language), Data structure, Data type, David Musser, Delphi (software), Design Patterns, Digital Equipment Corporation, Domain-specific language, Donald Knuth, Duplicate code, Eiffel (programming language), Execution (computing), Extensible programming, F Sharp (programming language), Forth (programming language), Free Pascal, Function (computer programming), ... Expand index (68 more) »
Abstract algebra
In mathematics, more specifically algebra, abstract algebra or modern algebra is the study of algebraic structures, which are sets with specific operations acting on their elements.
See Generic programming and Abstract algebra
Ada (programming language)
Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, inspired by Pascal and other languages.
See Generic programming and Ada (programming language)
Alexander Stepanov
Alexander Alexandrovich Stepanov (Алекса́ндр Алекса́ндрович Степа́нов; born November 16, 1950, Moscow) is a Russian-American computer programmer, best known as an advocate of generic programming and as the primary designer and implementer of the C++ Standard Template Library, which he started to develop around 1992 while employed at HP Labs.
See Generic programming and Alexander Stepanov
Algorithm
In mathematics and computer science, an algorithm is a finite sequence of mathematically rigorous instructions, typically used to solve a class of specific problems or to perform a computation.
See Generic programming and Algorithm
Analysis of algorithms
In computer science, the analysis of algorithms is the process of finding the computational complexity of algorithms—the amount of time, storage, or other resources needed to execute them.
See Generic programming and Analysis of algorithms
Andrei Alexandrescu
Tudor Andrei Cristian Alexandrescu (born 1969) is a Romanian-American C++ and D language programmer and author.
See Generic programming and Andrei Alexandrescu
Array (data type)
In computer science, array is a data type that represents a collection of elements (values or variables), each selected by one or more indices (identifying keys) that can be computed at run time during program execution.
See Generic programming and Array (data type)
Association for Computing Machinery
The Association for Computing Machinery (ACM) is a US-based international learned society for computing.
See Generic programming and Association for Computing Machinery
Associative array
In computer science, an associative array, map, symbol table, or dictionary is an abstract data type that stores a collection of (key, value) pairs, such that each possible key appears at most once in the collection.
See Generic programming and Associative array
Attribute (computing)
In computing, an attribute is a specification that defines a property of an object, element, or file.
See Generic programming and Attribute (computing)
Banach space
In mathematics, more specifically in functional analysis, a Banach space (pronounced) is a complete normed vector space.
See Generic programming and Banach space
BETA (programming language)
BETA is a pure object-oriented language originating within the "Scandinavian School" in object-orientation where the first object-oriented language Simula was developed.
See Generic programming and BETA (programming language)
Binary tree
In computer science, a binary tree is a tree data structure in which each node has at most two children, referred to as the left child and the right child.
See Generic programming and Binary tree
Bjarne Stroustrup
Bjarne Stroustrup (born 30 December 1950) is a Danish computer scientist, known for the development of the C++ programming language.
See Generic programming and Bjarne Stroustrup
Boilerplate code
In computer programming, boilerplate code, or simply boilerplate, are sections of code that are repeated in multiple places with little to no variation.
See Generic programming and Boilerplate code
Boxing (computer science)
In computer science, boxing (a.k.a. wrapping) is the transformation of placing a primitive type within an object so that the value can be used as a reference.
See Generic programming and Boxing (computer science)
C (programming language)
C (pronounced – like the letter c) is a general-purpose programming language.
See Generic programming and C (programming language)
C Sharp (programming language)
C# is a general-purpose high-level programming language supporting multiple paradigms.
See Generic programming and C Sharp (programming language)
C++
C++ (pronounced "C plus plus" and sometimes abbreviated as CPP) is a high-level, general-purpose programming language created by Danish computer scientist Bjarne Stroustrup.
See Generic programming and C++
Clean (programming language)
Clean is a general-purpose purely functional programming language.
See Generic programming and Clean (programming language)
CLU (programming language)
CLU is a programming language created at the Massachusetts Institute of Technology (MIT) by Barbara Liskov and her students starting in 1973.
See Generic programming and CLU (programming language)
Code bloat
In computer programming, code bloat is the production of program code (source code or machine code) that is perceived as unnecessarily long, slow, or otherwise wasteful of resources.
See Generic programming and Code bloat
Communication protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity.
See Generic programming and Communication protocol
Comparison of Java and C++
Java and C++ are two prominent object-oriented programming languages.
See Generic programming and Comparison of Java and C++
Compile time
In computer science, compile time (or compile-time) describes the time window during which a language's statements are converted into binary instructions for the processor to execute.
See Generic programming and Compile time
Compile-time function execution
In computing, compile-time function execution (or compile time function evaluation, or general constant expressions) is the ability of a compiler, that would normally compile a function to machine code and execute it at run time, to execute the function at compile time.
See Generic programming and Compile-time function execution
Compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language).
See Generic programming and Compiler
Complex number
In mathematics, a complex number is an element of a number system that extends the real numbers with a specific element denoted, called the imaginary unit and satisfying the equation i^.
See Generic programming and Complex number
Computer programming
Computer programming or coding is the composition of sequences of instructions, called programs, that computers can follow to perform tasks.
See Generic programming and Computer programming
Concept (generic programming)
In generic programming, a concept is a description of supported operations on a type, including syntax and semantics.
See Generic programming and Concept (generic programming)
Concepts (C++)
Concepts are an extension to the templates feature provided by the C++ programming language.
See Generic programming and Concepts (C++)
Container (abstract data type)
In computer science, a container is a class or a data structure whose instances are collections of other objects.
See Generic programming and Container (abstract data type)
Covariance and contravariance (computer science)
Many programming language type systems support subtyping.
See Generic programming and Covariance and contravariance (computer science)
D (programming language)
D, also known as dlang, is a multi-paradigm system programming language created by Walter Bright at Digital Mars and released in 2001.
See Generic programming and D (programming language)
Data structure
In computer science, a data structure is a data organization, and storage format that is usually chosen for efficient access to data.
See Generic programming and Data structure
Data type
In computer science and computer programming, a data type (or simply type) is a collection or grouping of data values, usually specified by a set of possible values, a set of allowed operations on these values, and/or a representation of these values as machine types.
See Generic programming and Data type
David Musser
David "Dave" Musser is a professor emeritus of computer science at the Rensselaer Polytechnic Institute in Troy, New York, United States.
See Generic programming and David Musser
Delphi (software)
Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, currently developed and maintained by Embarcadero Technologies.
See Generic programming and Delphi (software)
Design Patterns
Design Patterns: Elements of Reusable Object-Oriented Software (1994) is a software engineering book describing software design patterns.
See Generic programming and Design Patterns
Digital Equipment Corporation
Digital Equipment Corporation (DEC), using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s.
See Generic programming and Digital Equipment Corporation
Domain-specific language
A domain-specific language (DSL) is a computer language specialized to a particular application domain.
See Generic programming and Domain-specific language
Donald Knuth
Donald Ervin Knuth (born January 10, 1938) is an American computer scientist and mathematician.
See Generic programming and Donald Knuth
Duplicate code
In computer programming, duplicate code is a sequence of source code that occurs more than once, either within a program or across different programs owned or maintained by the same entity.
See Generic programming and Duplicate code
Eiffel (programming language)
Eiffel is an object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of Object-Oriented Software Construction) and Eiffel Software.
See Generic programming and Eiffel (programming language)
Execution (computing)
Execution in computer and software engineering is the process by which a computer or virtual machine interprets and acts on the instructions of a computer program.
See Generic programming and Execution (computing)
Extensible programming
Extensible programming is a term used in computer science to describe a style of computer programming that focuses on mechanisms to extend the programming language, compiler, and runtime system (environment).
See Generic programming and Extensible programming
F Sharp (programming language)
F# (pronounced F sharp) is a general-purpose, high-level, strongly typed, multi-paradigm programming language that encompasses functional, imperative, and object-oriented programming methods.
See Generic programming and F Sharp (programming language)
Forth (programming language)
Forth is a stack-oriented programming language and interactive integrated development environment designed by Charles H. "Chuck" Moore and first used by other programmers in 1970.
See Generic programming and Forth (programming language)
Free Pascal
Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal.
See Generic programming and Free Pascal
Function (computer programming)
In computer programming, a function, procedure, method, subroutine, routine, or subprogram is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times.
See Generic programming and Function (computer programming)
Functional programming
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions.
See Generic programming and Functional programming
Generic function
In computer programming, a generic function is a function defined for polymorphism.
See Generic programming and Generic function
Go (programming language)
Go is a statically typed, compiled high-level programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson.
See Generic programming and Go (programming language)
Hardware register
In digital electronics, especially computing, hardware registers are circuits typically composed of flip-flops, often with many characteristics similar to memory, such as.
See Generic programming and Hardware register
Haskell
Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation.
See Generic programming and Haskell
Inline function
In the C and C++ programming languages, an inline function is one qualified with the keyword inline; this serves two purposes.
See Generic programming and Inline function
International Conference on Functional Programming
The International Conference on Functional Programming (ICFP) is an annual academic conference in the field of computer science sponsored by the ACM SIGPLAN, in association with IFIP Working Group 2.8 (Functional Programming).
See Generic programming and International Conference on Functional Programming
Iterator
In computer programming, an iterator is an object that progressively provides access to each item of a collection, in order.
See Generic programming and Iterator
Java (programming language)
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.
See Generic programming and Java (programming language)
Java Platform, Standard Edition
Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of portable code for desktop and server environments.
See Generic programming and Java Platform, Standard Edition
Java virtual machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode.
See Generic programming and Java virtual machine
Kind (type theory)
In the area of mathematical logic and computer science known as type theory, a kind is the type of a type constructor or, less commonly, the type of a higher-order type operator.
See Generic programming and Kind (type theory)
Linked list
In computer science, a linked list is a linear collection of data elements whose order is not given by their physical placement in memory.
See Generic programming and Linked list
Linker (computing)
In computing, a linker or link editor is a computer system program that takes one or more object files (generated by a compiler or an assembler) and combines them into a single executable file, library file, or another "object" file.
See Generic programming and Linker (computing)
Macro (computer science)
In computer programming, a macro (short for "macro instruction") is a rule or pattern that specifies how a certain input should be mapped to a replacement output.
See Generic programming and Macro (computer science)
Memory management
Memory management is a form of resource management applied to computer memory.
See Generic programming and Memory management
ML (programming language)
ML (Meta Language) is a general-purpose, high-level, functional programming language.
See Generic programming and ML (programming language)
Modern C++ Design
Modern C++ Design: Generic Programming and Design Patterns Applied is a book written by Andrei Alexandrescu, published in 2001 by Addison-Wesley.
See Generic programming and Modern C++ Design
Modular programming
Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.
See Generic programming and Modular programming
Netherlands
The Netherlands, informally Holland, is a country located in Northwestern Europe with overseas territories in the Caribbean.
See Generic programming and Netherlands
Nim (programming language)
Nim is a general-purpose, multi-paradigm, statically typed, compiled high-level system programming language, designed and developed by a team around Andreas Rumpf.
See Generic programming and Nim (programming language)
Object Pascal
Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods.
See Generic programming and Object Pascal
Object-based language
The term object-based language may be used in a technical sense to describe any programming language that uses the idea of encapsulating state and operations inside objects.
See Generic programming and Object-based language
Object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields (often known as attributes or properties), and code in the form of procedures (often known as methods).
See Generic programming and Object-oriented programming
OCaml
OCaml (formerly Objective Caml) is a general-purpose, high-level, multi-paradigm programming language which extends the Caml dialect of ML with object-oriented features.
See Generic programming and OCaml
Operator overloading
In computer programming, operator overloading, sometimes termed operator ad hoc polymorphism, is a specific case of polymorphism, where different operators have different implementations depending on their arguments.
See Generic programming and Operator overloading
Oxygene (programming language)
Oxygene (formerly known as Chrome) is a programming language developed by RemObjects Software for Microsoft's Common Language Infrastructure, the Java Platform and Cocoa.
See Generic programming and Oxygene (programming language)
Parameter (computer programming)
In computer programming, a parameter or a formal argument is a special kind of variable used in a subroutine to refer to one of the pieces of data provided as input to the subroutine.
See Generic programming and Parameter (computer programming)
Parametric polymorphism
In programming languages and type theory, parametric polymorphism allows a single piece of code to be given a "generic" type, using variables in place of actual types, and then instantiated with particular types as needed.
See Generic programming and Parametric polymorphism
Partial evaluation
In computing, partial evaluation is a technique for several different types of program optimization by specialization.
See Generic programming and Partial evaluation
Partial template specialization
Partial template specialization is a particular form of class template specialization.
See Generic programming and Partial template specialization
Polymorphism (computer science)
In programming language theory and type theory, polymorphism is the use of a single symbol to represent multiple different types.
See Generic programming and Polymorphism (computer science)
Preprocessor
In computer science, a preprocessor (or precompiler) is a program that processes its input data to produce output that is used as input in another program.
See Generic programming and Preprocessor
Programming paradigm
A programming paradigm is a relatively high-level way to conceptualize and structure the implementation of a computer program.
See Generic programming and Programming paradigm
Python (programming language)
Python is a high-level, general-purpose programming language.
See Generic programming and Python (programming language)
Reflective programming
In computer science, reflective programming or reflection is the ability of a process to examine, introspect, and modify its own structure and behavior.
See Generic programming and Reflective programming
Reification (computer science)
Reification is the process by which an abstract idea about a computer program is turned into an explicit data model or other object created in a programming language.
See Generic programming and Reification (computer science)
Ring (mathematics)
In mathematics, rings are algebraic structures that generalize fields: multiplication need not be commutative and multiplicative inverses need not exist.
See Generic programming and Ring (mathematics)
Rust (programming language)
Rust is a general-purpose programming language emphasizing performance, type safety, and concurrency.
See Generic programming and Rust (programming language)
Scala (programming language)
Scala is a strong statically typed high-level general-purpose programming language that supports both object-oriented programming and functional programming.
See Generic programming and Scala (programming language)
Scheme (programming language)
Scheme is a dialect of the Lisp family of programming languages.
See Generic programming and Scheme (programming language)
Signature (disambiguation)
A signature is a hand-written, possibly stylized, version of someone's name, which may be used to confirm the person's identity.
See Generic programming and Signature (disambiguation)
SIGPLAN
SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages.
See Generic programming and SIGPLAN
Simon Peyton Jones
Simon Peyton Jones (born 18 January 1958) is a British computer scientist who researches the implementation and applications of functional programming languages, particularly lazy functional programming.
See Generic programming and Simon Peyton Jones
Standard ML
Standard ML (SML) is a general-purpose, high-level, modular, functional programming language with compile-time type checking and type inference.
See Generic programming and Standard ML
Standard Template Library
The Standard Template Library (STL) is a software library originally designed by Alexander Stepanov for the C++ programming language that influenced many parts of the C++ Standard Library.
See Generic programming and Standard Template Library
Static dispatch
In computing, static dispatch is a form of polymorphism fully resolved during compile time.
See Generic programming and Static dispatch
Struct (C programming language)
In the C programming language, struct is the keyword used to define a composite, a.k.a. record, data type a named set of values that occupy a block of memory.
See Generic programming and Struct (C programming language)
Structural type system
A structural type system (or property-based type system) is a major class of type systems in which type compatibility and equivalence are determined by the type's actual structure or definition and not by other characteristics such as its name or place of declaration.
See Generic programming and Structural type system
Substitution failure is not an error
Substitution failure is not an error (SFINAE) is a principle in C++ where an invalid substitution of template parameters is not in itself an error.
See Generic programming and Substitution failure is not an error
Subtyping
In programming language theory, subtyping (also called subtype polymorphism or inclusion polymorphism) is a form of type polymorphism.
See Generic programming and Subtyping
Swift (programming language)
Swift is a high-level general-purpose, multi-paradigm, compiled programming language created by Chris Lattner in 2010 for Apple Inc. and maintained by the open-source community.
See Generic programming and Swift (programming language)
Template (C++)
Templates are a feature of the C++ programming language that allows functions and classes to operate with generic types.
See Generic programming and Template (C++)
Template metaprogramming
Template metaprogramming (TMP) is a metaprogramming technique in which templates are used by a compiler to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled.
See Generic programming and Template metaprogramming
Trellis-Owl
Trellis/Owl, or simply Owl, is a defunct object-oriented programming language created by Digital Equipment Corporation.
See Generic programming and Trellis-Owl
Turing completeness
In computability theory, a system of data-manipulation rules (such as a model of computation, a computer's instruction set, a programming language, or a cellular automaton) is said to be Turing-complete or computationally universal if it can be used to simulate any Turing machine (devised by English mathematician and computer scientist Alan Turing).
See Generic programming and Turing completeness
Type class
In computer science, a type class is a type system construct that supports ad hoc polymorphism.
See Generic programming and Type class
Type conversion
In computer science, type conversion, type casting, type coercion, and type juggling are different ways of changing an expression from one data type to another.
See Generic programming and Type conversion
Type erasure
In programming languages, type erasure is the load-time process by which explicit type annotations are removed from a program, before it is executed at run-time.
See Generic programming and Type erasure
Type inference
Type inference, sometimes called type reconstruction, refers to the automatic detection of the type of an expression in a formal language.
See Generic programming and Type inference
Type safety
In computer science, type safety and type soundness are the extent to which a programming language discourages or prevents type errors.
See Generic programming and Type safety
Typeof
typeof, alternately also typeOf, and TypeOf, is an operator provided by several programming languages to determine the data type of a variable.
See Generic programming and Typeof
TypeScript
TypeScript is a free and open-source high-level programming language developed by Microsoft that adds static typing with optional type annotations to JavaScript.
See Generic programming and TypeScript
Utrecht University
Utrecht University (UU; Universiteit Utrecht, formerly Rijksuniversiteit Utrecht) is a public research university in Utrecht, Netherlands.
See Generic programming and Utrecht University
Verilog
Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems.
See Generic programming and Verilog
VHDL
VHDL (VHSIC Hardware Description Language) is a hardware description language that can model the behavior and structure of digital systems at multiple levels of abstraction, ranging from the system level down to that of logic gates, for design entry, documentation, and verification purposes.
See Generic programming and VHDL
Visual Basic (.NET)
Visual Basic (VB), originally called Visual Basic.NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on.NET, Mono, and the.NET Framework.
See Generic programming and Visual Basic (.NET)
.NET Framework
The.NET Framework (pronounced as "dot net") is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows.
See Generic programming and .NET Framework
References
Also known as Comparison of programming languages (generics), Generic algorithm, Generic class, Generic datatype, Generic type, Generic types, Genericity, Generics in Ada, Instantiation of template, Parameterized class, Parameterized type, Template class, Template specialisation, Template specialization.

