We are working to restore the Unionpedia app on the Google Play Store
OutgoingIncoming
🌟We've simplified our design for better navigation!
Instagram Facebook X LinkedIn
Your own Unionpedia with your logo and domain, from 9.99 USD/month
Create my Unionpedia

Generic programming

Index Generic programming

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. [1]

Table of Contents

  1. 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

[1] https://en.wikipedia.org/wiki/Generic_programming

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.

, Functional programming, Generic function, Go (programming language), Hardware register, Haskell, Inline function, International Conference on Functional Programming, Iterator, Java (programming language), Java Platform, Standard Edition, Java virtual machine, Kind (type theory), Linked list, Linker (computing), Macro (computer science), Memory management, ML (programming language), Modern C++ Design, Modular programming, Netherlands, Nim (programming language), Object Pascal, Object-based language, Object-oriented programming, OCaml, Operator overloading, Oxygene (programming language), Parameter (computer programming), Parametric polymorphism, Partial evaluation, Partial template specialization, Polymorphism (computer science), Preprocessor, Programming paradigm, Python (programming language), Reflective programming, Reification (computer science), Ring (mathematics), Rust (programming language), Scala (programming language), Scheme (programming language), Signature (disambiguation), SIGPLAN, Simon Peyton Jones, Standard ML, Standard Template Library, Static dispatch, Struct (C programming language), Structural type system, Substitution failure is not an error, Subtyping, Swift (programming language), Template (C++), Template metaprogramming, Trellis-Owl, Turing completeness, Type class, Type conversion, Type erasure, Type inference, Type safety, Typeof, TypeScript, Utrecht University, Verilog, VHDL, Visual Basic (.NET), .NET Framework.