Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983. This approach permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplication. Software entities created using generic programming are known as generics in Ada, Eiffel, Java, C#, Visual Basic . NET and Haskell; templates in C++; and parameterized types in the influential 1994 book Design Patterns. The authors of Design Patterns note that this technique, especially when combined with delegation, is very powerful but that "Dynamic, highly parameterized software is harder to understand than more static software." Generic programming refers to features of certain statically typed programming languages that allow some code to effectively circumvent the static typing requirements.

PropertyValue
p:abstract
  • Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983. This approach permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplication. Software entities created using generic programming are known as generics in Ada, Eiffel, Java, C#, Visual Basic . NET and Haskell; templates in C++; and parameterized types in the influential 1994 book Design Patterns. The authors of Design Patterns note that this technique, especially when combined with delegation, is very powerful but that "Dynamic, highly parameterized software is harder to understand than more static software." Generic programming refers to features of certain statically typed programming languages that allow some code to effectively circumvent the static typing requirements. For instance in C++, a template is a routine in which some parameters are qualified by a type variable. Since code generation in C++ depends on concrete types, the template is specialized for each combination of argument types that occur in practice. Generic programming is commonly used to implement containers such as lists and hash tables and functions such as a particular sorting algorithm for objects specified in terms more general than a concrete type. (en)
  • En programmation, la généricité d'une fonction repose sur son indépendance vis-à-vis du type, et éventuellement du nombre, de ses arguments. C'est un concept important pour un langage de haut niveau car il permet d'augmenter le niveau d'abstraction du langage. Plusieurs mécanismes visant à permettre l'écriture de fonctions génériques ont donc été mis en œuvre par les différents langages de programmation. (fr)
  • ジェネリック(総称あるいは汎用)プログラミング(generic programming)はデータ形式に依存しないコンピュータプログラミング方式。これはデータ型でコードをインスタンス化するのか、あるいはデータ型をパラメータとして渡すかということに関わらず、同じソースコードを利用できるということである。ジェネリックプログラミングは言語により異なる形で実装されている。ジェネリックプログラミングの機能は70年代にCLUやAdaのような言語に搭載され、次にBETA、C++、D、Eiffel、Java、そして今はなきDECのTrellils-Owl言語などの数多くのオブジェクトベース及びオブジェクト指向言語に採用された。 1995年の書籍デザインパターンの共著者はジェネリクスや、テンプレートとしても知られるパラメータ化された型(parameterized types)としてジェネリクスについて触れている。これらは、型を指定することなく、型を定義できるようにする(型は使用する時点で引数として与えられる)。このテクニック(特にデリゲーションを組み合わせるとき)は非常に強力であるが、同時に「動的に、高度にパラメーター化されたソフトウェアはより静的なソフトウェアよりも理解しづらい」とその著者は忠告している(Gang of Four 1995:21)。 (ja)
  • Genericiteit of generics is een voorziening voor programmeertalen die generiek programmeren toestaat. Dit betekent dat algoritmes kunnen worden geschreven in een bepaalde syntaxis waarbij de algoritmes adaptief zijn maar tevens nog door de compiler geïnstantieerd kunnen worden. Zo kunnen algoritmes generiek worden geschreven zonder snelheidsverlies. Een sorteeralgoritme hoeft zich met behulp van generiek programmeren niet bezig te houden met wat voor datatype het precies sorteert, maar alleen hoe het dat doet. Generiek programmeren ligt dicht tegen meta-programmeren aan, een techniek waarbij aan de hand van bepaalde broncode weer nieuwe broncode wordt geprogrammeerd, die daarna wordt gecompileerd. Bij generiek programmeren gaat het echter om een syntactische en semantische uitbreiding in de programmeertaal en wordt er niet direct 'nieuwe' broncode gegenereerd. Genericiteit werd rond 1970 onderdeel van een aantal programmeertalen, zoals CLU, Ada. Later werd de techniek ook onderdeel van veel andere object-geöriëntieerde talen, zoals C++, C#, Eiffel en Java. (nl)
  • Programowanie uogólnione (ang. Generic Programming) pozwala na pisanie kodu programu bez wcześniejszej znajomości typów danych, na których kod ten będzie pracował. Obecnie wiele języków programowania ma możliwość wykorzystywania uogólnień, np. C++, Java, Haskell. [edit] Programowanie uogólnione w C++ Przykładowa deklaracja uogólnionego kodu w języku C++ wygląda następująco: template<typename T> class List { ... }; gdzie T oznacza nieskonkretyzowany typ danych. W C++ takie uogólnienia nazywają się wzorcami . W powyższej definicji klasy zamiast konkretnego typu danych użyto symbolu T. Powyższy wzorzec można wykorzystać następująco: List<int> lista1; List<MojaKlasa> lista_mojej_klasy; List<std::string> lista2; Podczas kompilacji następuje tak zwana konkretyzacja, podczas której kompilator na podstawie typów danych przekazanych wzorcowi generuje kod właściwy do obsługi danego typu. Jedną z najbardziej znanych i najbardziej udanych aplikacji programowania uogólnionego jest standardowa biblioteka szablonów . Od 1998 roku stanowi ona fragment biblioteki standardowej języka C++ i zawiera definicje licznych algorytmów i pojemników (np. <code>vector i list), które charakteryzują się wysoką sprawnością i łatwością użycia. W języku C++ szablony stanowią też wygodny zamiennik dla makr preprocesora — nie tylko poprawiają czytelność kodu, ale także ułatwiają wyszukiwanie w nim błędów. (pl)
  • Обобщённое программирование — это парадигма программирования, заключающаяся в написании алгоритмов, которые можно применять к различным типам данных. В том или ином виде поддерживается разными языками программирования. Возможности обобщённого программирования впервые появились в 70-х годах в языках CLU и Ada, а затем во многих объектно-ориентированных языках, таких как C++, Java, D и языках для платформы . NET. (ru)
  • La programación genérica es un tipo de programación que está mucho más centrada en los algoritmos que en los datos. La idea de esta forma de programar pretende generalizar las funciones utilizadas para que puedan usarse en más de una ocasión. Esto se consigue parametrizando lo máximo posible el desarrollo del programa y expresados o devueltos de la forma más simple posible, evitando detalles concretos. La biblioteca de funciones conseguida con esta manera de programa permite que esas funciones puedan servir para más programas de los que, otras más concretas, podrían ser útiles; y también aplicando pocos cambios, conseguir que realice diferentes acciones. (es)
  • Programação genérica é um paradigma de programação no qual os algoritmos são escritos em uma gramática estendida de forma a adaptar-se através da especificação das partes variáveis que são definidas na instância do algoritmo. Especificamente, a gramática estendida eleva um elemento não variável ou uma construção implícita na gramática base para uma variável ou constante, permitindo a utilização do código genérico. É diferente da forma normal de programação na medida que invoca de certa forma as facilidade de metaprogramação da linguagem. Como isso ocorre em uma extensão da linguagem, novas semânticas são introduzidas e a linguagem é enriquecida no processo. É relacionada com a metaprogramação, mas não envolve a geração de código fonte, pelo menos visivelmente ao programador. É diferente também da programação por macros, já que esta refere-se somente a busca e substituição de termos, não fazendo parte da gramática da linguagem, implementada somente na fase de pré-processamento do código. Para efeitos práticos, o paradigma permite que um parâmetro assuma diferentes tipos de dados desde que certas regras sejam mantidas, como sub-tipos e assinaturas. Por exemplo, para criar uma lista usando programação genérica, uma possível declaração seria List<T>, no qual T é o tipo de dado. Para instanciar, poderia-se usar List<Inteiro> ou List<Animal>, já que o conceito de lista independe do tipo utilizado. Entre linguagens orientadas a objeto, C++, Linguagem D, BETA, Eiffel e versões de Java (1.5 e acima) fornecem o paradigma genérico. Visual Basic . NET, C# e Delphi. Net começaram a fornecer o paradigma a partir do . NET 2.0. Muito antes de todas as linguagens mencionadas, programação genérica já havia sido implementada na década de 1970 em linguagens como CLU e Ada. Mas somente o conceito de templates do C++ que popularizou o conceito. A técnica permite que algoritmos sejam escritos independente dos tipos de dados utilizados. Os autores do conceituado livro de 1995 Design PatternsCite error: Invalid <ref> tag; refs with no name must have content referem-se à programação genérica como tipos parametrizados, o que permite que um tipo possa ser definido sem especificar todos os outros tipos que ele utilizada. Os autores ainda descrevem que tal técnica é muito poderosa, especialmente quando combinada com o padrão Delegar. (pt)
  • 泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部份,那些部份在使用前必須作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。 (zh)
  • Generische Programmierung ist ein Verfahren zur Entwicklung wiederverwendbarer Software-Bibliotheken. Dabei werden Funktionen möglichst allgemein entworfen, um für unterschiedliche Datentypen und Datenstrukturen verwendet werden zu können. Die Implementierung erfolgt bei einigen Programmiersprachen durch das Konzept generischer Typen bzw. Templates – so gestalten sich dynamische Programmiersprachen, bei denen sich der Typ einer Variable zur Laufzeit ändern darf, durch ihre verallgemeinerte Polymorphie generisch. Von Sprachen, die solche Mechanismen bieten, sagt man auch, dass sie Generik erlauben. Wesentlich bei der generischen Programmierung ist, dass die Algorithmen nicht für einen bestimmten Datentyp geschrieben werden, sondern nur bestimmte Anforderungen an die Typen stellen. Das Prinzip wird auch parametrische Polymorphie genannt. Paradebeispiel ist die C++-Standardbibliothek der Programmiersprache C++, bei der die Algorithmen so weit wie möglich von den Datenstrukturen, mit denen sie arbeiten, getrennt werden. (de)
  • Templates oder Schablonen sind „Programmgerüste“, die eine vom Datentyp unabhängige Programmierung ermöglichen. Templates unterstützen die generische Programmierung. In C++ sind Schablonen von großem Nutzen, insbesondere wenn sie mit Vererbung und Überladen von Operatoren kombiniert werden. Auch die C++-Standardbibliothek stellt viele nützliche Komponenten in Form eines Template-Frameworkes, zur Verfügung. In anderen Programmiersprachen gibt es ein zu Templates ähnliches Konzept unter dem Namen „generischer Typ“. (de)
  • Generisk programmering er en paradigme for programmering av datamaskiner. Generisk programmering innebærer at man programmerer med allmenne typer. Kildekoden fungerer med vilkårlige typer, og den egentlige typen er parameter. Kompilatoren generer da kode som passer for hver forskjellig type som er brukt. Hensikten med generisk programmering er å gjenbruke kode, samt å kunne starte med kravene til algoritmen, i stedet for kravene til typen som ved objektorientert programmering. Programmeringsspråk som har støtte for generisk programmering inkluderer Java, C++, Ada, Eiffel og Common Lisp. Et eksempel på generisk programmering i utstrakt bruk er standardbiblioteket til C++. Her er et eksempel i C++ av Alexander Stepanov, en av arkitektene bak dette biblioteket: template <class StrictWeakOrdered> inline StrictWeakOrdered& max(StrictWeakOrdered&, StrictWeakOrdered& y) { return x < y ? y : x; } Koden over tar inn en type som parameter (StrictWeakOrdered) og returnerer den største verdien. (no)
p:hasPhotoCollection
p:javadocSeGuideProperty
  • Generic Programming In Java (en)
  • language/generics.html (en)
p:wikiPageUsesTemplate
rdf:type
rdfs:comment
  • Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983. This approach permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplication. Software entities created using generic programming are known as generics in Ada, Eiffel, Java, C#, Visual Basic . NET and Haskell; templates in C++; and parameterized types in the influential 1994 book Design Patterns. The authors of Design Patterns note that this technique, especially when combined with delegation, is very powerful but that "Dynamic, highly parameterized software is harder to understand than more static software." Generic programming refers to features of certain statically typed programming languages that allow some code to effectively circumvent the static typing requirements. (en)
  • En programmation, la généricité d'une fonction repose sur son indépendance vis-� -vis du type, et éventuellement du nombre, de ses arguments. C'est un concept important pour un langage de haut niveau car il permet d'augmenter le niveau d'abstraction du langage. (fr)
  • ジェネリック(総称あるいは汎用)プログラミング(generic programming)はデータ形式に依存しないコンピュータプログラミング方式。これはデータ型でコードをインスタンス化するのか、あるいはデータ型をパラメータとして渡すかということに関わらず、同じソースコードを利用できるということである。ジェネリックプログラミングは言語により異なる形で実装されている。ジェネリックプログラミングの機能は70年代にCLUやAdaのような言語に搭載され、次にBETA、C++、D、Eiffel、Java、そして今はなきDECのTrellils-Owl言語などの数多くのオブジェクトベース及びオブジェクト指向言語に採用された。 1995年の書籍デザインパターンの共著者はジェネリクスや、テンプレートとしても知られるパラメータ化された型(parameterized types)としてジェネリクスについて触れている。これらは、型を指定することなく、型を定義できるようにする(型は使用する時点で引数として与えられる)。このテクニック(特にデリゲーションを組み合わせるとき)は非常に強力であるが、同時に「動的に、高度にパラメーター化されたソフトウェアはより静的なソフトウェアよりも理解しづらい」とその著者は� 告している(Gang of Four 1995:21)。 (ja)
  • Genericiteit of generics is een voorziening voor programmeertalen die generiek programmeren toestaat. (nl)
  • Programowanie uogólnione (ang. Generic Programming) pozwala na pisanie kodu programu bez wcześniejszej znajomości typów danych, na których kod ten będzie pracował. Obecnie wiele języków programowania ma możliwość wykorzystywania uogólnień, np. (pl)
  • Обобщённое программирование — это парадигма программирования, заключающаяся в написании алгоритмов, которые можно применять к различным типам данных. (ru)
  • La programación genérica es un tipo de programación que está mucho más centrada en los algoritmos que en los datos. La idea de esta forma de programar pretende generalizar las funciones utilizadas para que puedan usarse en más de una ocasión. Esto se consigue parametrizando lo máximo posible el desarrollo del programa y expresados o devueltos de la forma más simple posible, evitando detalles concretos. (es)
  • Programação genérica é um paradigma de programação no qual os algoritmos são escritos em uma gramática estendida de forma a adaptar-se através da especificação das partes variáveis que são definidas na instância do algoritmo. (pt)
  • 泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代� �时定义一些可变部份,那些部份在使用前必� �作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一� �。 (zh)
  • Templates oder Schablonen sind „Programmgerüste“, die eine vom Datentyp unabhängige Programmierung ermöglichen. Templates unterstützen die generische Programmierung. (de)
  • Generisk programmering er en paradigme for programmering av datamaskiner. (no)
rdfs:label
  • Generic programming (en)
  • Généricité (fr)
  • ジェネリックプログラミング (ja)
  • Genericiteit (programmeertaalvoorziening) (nl)
  • Template (software) (nl)
  • Programowanie uogólnione (pl)
  • Обобщённое программирование (ru)
  • Programación genérica (es)
  • Programação genérica (pt)
  • 泛型 (zh)
  • Generische Programmierung (de)
  • Template (Programmierung) (de)
  • Generisk programmering (no)
owl:sameAs
skos:subject
foaf:page
is dbpedia-owl:genre of
is p:genre of
is p:redirect of
is owl:sameAs of