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

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!


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.