Tipo genérico

Em ciência da computação , tipos genéricos são tipos de dados com a opção de especificar parâmetros de tipo. Também se fala de polimorfismo paramétrico .

Um tipo genérico permite que tipos de dados sejam gerados de forma abstrata dos tipos subjacentes. Assim, pode-se programar uma lista de números, uma lista de caracteres e uma lista de datas da mesma maneira; H. os algoritmos para inserir, pesquisar e excluir sempre rodariam da mesma forma. Portanto, é desejável implementar a lista independentemente desses tipos.

Por exemplo, em Java, uma lista genérica seria definida da seguinte maneira:

 List<T>

Aqui significa List<T> tipo genérico e Té chamado de parâmetro de tipo . Os tipos genéricos são encontrados em todas as linguagens de programação que o paradigma da programação genérica suporta.

Em linguagens de programação, existem basicamente duas abordagens para oferecer suporte a tipos genéricos. Uma é que o mesmo código é usado GenerischerTyp<T>para todos os se usa propriedades específicas de Tvia ligação dinâmica de métodos T. Outra maneira, que i.a. C ++ tem tudo a ver com o uso de modelos . O parâmetro de tipo é substituído diretamente pelo tipo específico em tempo de compilação. Se houver vários parâmetros de tipo diferentes para um tipo genérico, várias classes também serão criadas em C ++.

Com o .NET , a Microsoft faz um meio-termo para combinar as vantagens de ambos os métodos: para todos os tipos de referência como parâmetros de tipo, a classe genérica usa o mesmo código nativo , pois a representação interna (uma referência simples ) de todos os tipos de referência é a mesma. Ao usar tipos de valor como parâmetros de tipo, um caminho de código nativo separado é criado para cada tipo de valor no tempo de execução quando ele é usado pela primeira vez.

Tipos genéricos em várias linguagens de programação

  • C ++ implementa tipos genéricos usando modelos, por exemplo, B. Modelos de classe.
  • Programação genérica em Java
  • C # e outras linguagens .NET oferecem genéricos desde .NET 2.0
  • Na linguagem de programação Ada , tipos genéricos são usados ​​para parametrizar pacotes.
  • Delphi oferece suporte para tipos genéricos desde Delphi 2009, Free Pascal suporta classes genéricas da versão 2.2.
  • A linguagem de programação Haxe oferece tipos genéricos para Flash, JavaScript e execução do lado do servidor (todas são três áreas nas quais os genéricos não são possíveis)
  • Haskell oferece um sistema de tipos muito poderoso