Généricité

En programmation, la généricité (ou programmation générique), consiste à définir des algorithmes identiques opérant sur des données de types différents. On définit de cette façon des procédures ou des types entiers génériques. On pourrait ainsi programmer une pile, ou une procédure qui prend l'élément supérieur de la pile, indépendamment du type de données contenues.

C'est donc une forme de polymorphisme, le polymorphisme de type dit aussi paramétrage de type : en effet, le type de donnée général (abstrait) apparaît comme un paramètre des algorithmes définis, avec la particularité que ce paramètre-là est un type. C'est un concept important pour un langage de haut niveau car il permet d'écrire des algorithmes généraux opérant sur toute une série de types : la généricité augmente donc le niveau d'abstraction des programmes écrits dans un langage qui possède cette fonctionnalité. Divers mécanismes ont été conçus pour permettre la programmation générique.

Polymorphisme

Dans un langage à typage dynamique, on utilise le polymorphisme ad hoc : les paramètres passés en arguments à la fonction doivent se conformer à une interface donnée (un protocole définissant quelles méthodes sont supportées par cet argument). Ce mécanisme est supporté par tous les langages orientés objets, y compris ceux que l'on qualifie généralement comme étant à typage statique ( Java, ou méthodes virtuelles du C++ par exemple). En effet, même si le langage apporte des outils pour vérifier la cohérence des interfaces à la compilation, la détermination du type réel de l'argument (c’est-à-dire la résolution de l'adresse du code implémentant les méthodes de l'interface) n'est effectuée qu'à l'exécution dans certains cas.

Other Languages