Primeiros idiomas com suporte genérico de programação

15

Qual foi o primeiro idioma com suporte a programação genérica e qual foi a primeira linguagem principal com tipagem estática (amplamente usada) com suporte a genéricos.

Os genéricos implementam o conceito de tipos parametrizados para permitir vários tipos. O termo genérico significa "pertencente a ou apropriado para grandes grupos de classes".

Eu vi as seguintes menções de "primeiro":

O polimorfismo paramétrico de primeira ordem agora é um elemento padrão das linguagens de programação com tipos estatísticos. Começando com o System F [20,42] e os idiomas de programação funcional, as construções chegaram às linguagens populares, como Java e C #. Nessas linguagens, o polimorfismo paramétrico de primeira ordem é geralmente chamado de genérico.

De " Genéricos de um tipo superior" , Adriaan Moors, Frank Piessens e Martin Odersky

Programação genérica é um estilo de programação de computador no qual os algoritmos são escritos em termos de tipos a serem especificados posteriormente, que são instanciados quando necessário para tipos específicos fornecidos como parâmetros. Essa abordagem, pioneira em Ada em 1983

Da programação genérica da Wikipedia

oluies
fonte

Respostas:

4

Provavelmente Lisp. Foi mais ou menos isso nos anos 60. De fato, se a pergunta é qual foi o primeiro idioma a fazer praticamente qualquer coisa digna de nota, você provavelmente descobrirá que era ceceio. É meio assustador perceber que o novo recurso interessante no idioma X era de fato o novo recurso interessante do lisp em 1960!

Zachary K
fonte
7
Lisp não foi digitado estaticamente, de modo que "genéricos" nem faz sentido nesse contexto.
Rufflewind
Bem, "Genéricos" só fazem sentido para alguns tipos de digitação estática. Existem muitos tipos de sistemas de tipos que possuem propriedades diferentes.
Zachary K
@ZacharyK O recurso específico do sistema de tipos designado por "genéricos" é o polimorfismo paramétrico , que não faz sentido em linguagens não tipadas.
Jack
3

Antes dos genéricos, havia modelos e antes dessa substituição de macro.

Lie Ryan
fonte
Modelos não são polimorfismos paramétricos, o que a maioria das pessoas quer dizer quando dizem "genéricos" no contexto de tipos. Modelos e macros nem sequer estão vinculados aos sistemas de tipos, são um recurso ortogonal.
Jack
Esta resposta confunde "genéricos Java" com "programação genérica".
Kaz