Premières langues avec support de programmation générique

15

Quel était le premier langage avec un support de programmation générique, et quel était le premier langage majeur typé statiquement (largement utilisé) avec un support générique.

Les génériques implémentent le concept de types paramétrés pour permettre plusieurs types. Le terme générique signifie «appartenant à ou approprié à de grands groupes de classes».

J'ai vu les mentions suivantes de "premier":

Le polymorphisme paramétrique de premier ordre est désormais un élément standard des langages de programmation typés statiquement. À partir du système F [20,42] et des langages de programmation fonctionnels, les constructions ont trouvé leur chemin dans les langages courants tels que Java et C #. Dans ces langages, le polymorphisme paramétrique de premier ordre est généralement appelé générique.

De " Generics of a Higher Kind" , Adriaan Moors, Frank Piessens et Martin Odersky

La programmation générique est un style de programmation informatique dans lequel les algorithmes sont écrits en termes de types à spécifier ultérieurement qui sont ensuite instanciés lorsque cela est nécessaire pour des types spécifiques fournis en tant que paramètres. Cette approche, lancée par Ada en 1983

De la programmation générique de Wikipedia

oluies
la source

Réponses:

4

Probablement Lisp. Il le faisait plus ou moins dans les années 60. En fait, si la question est de savoir quelle a été la première langue à faire à peu près tout ce qui est à noter, vous trouverez probablement que c'était lisp. C'est un peu effrayant de réaliser que la nouvelle fonctionnalité intéressante du langage X était en fait la nouvelle fonctionnalité intéressante de lisp en 1960!

Zachary K
la source
7
Lisp n'a pas été typé statiquement, donc "génériques" n'a même pas de sens dans ce contexte.
Rufflewind
Eh bien, les "génériques" n'ont de sens que pour certains types de frappe statique. Il existe de nombreux types de systèmes de types qui ont des propriétés différentes.
Zachary K
@ZacharyK La caractéristique spécifique du système de type que l'on entend par "génériques" est le polymorphisme paramétrique , qui n'a pas de sens dans les langages non typés.
Jack
3

Avant les génériques, il y avait des modèles et avant cette substitution de macro.

Lie Ryan
la source
Les modèles ne sont pas du polymorphisme paramétrique, ce que la plupart des gens veulent dire quand ils disent «génériques» dans le contexte des types. Les modèles et les macros ne sont même pas liés aux systèmes de saisie, ils sont tout à fait une fonction orthogonale.
Jack
Cette réponse confond "génériques Java" avec "programmation générique".
Kaz