Signature de type

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Signature (homonymie).

En programmation informatique, la signature de type définit les types de données acceptables pour une fonction ou une méthode. Une signature inclut au moins le nom de la fonction et le nombre de paramètres. Dans certains langages, elle peut aussi spécifier le type de la valeur de retour et le type de ses paramètres.

Haskell[modifier | modifier le code]

Une signature de type en Haskell est généralement écrite dans le format suivant :

 nomDeFonction :: typeArgument1 -> typeArgument2 -> ... -> typeArgumentN

Notez que la sortie finale peut être considérée comme un argument. C'est la conséquence de la curryfication.


Les spécifications de type peuvent consister en un type, tel que Integer, ou une variable de type dans le cas de fonctions polymorphiques. En Haskell, ces variables de type peuvent être notamment "a", "b" ou "anyType", de sorte que l'on peut écrire :

 nomDeFonction :: a -> a -> ... -> a

Puisque Haskell supporte des fonctions d'ordre supérieur, des fonctions peuvent être passées comme arguments. Ceci s'écrit comme suit :

 nomDeFonction :: (a -> a) -> a

Cette fonction accepte une fonction avec comme signature de type a -> a, et retourne des données de type a.

Java[modifier | modifier le code]

Dans la machine virtuelle Java, on utilise les signatures de type interne pour identifier les méthodes et les classes au niveau du code la machine virtuelle.

Exemple :
La méthode String String.substring(int, int) est représentée comme java/lang/String/substring(II)Ljava/lang/String;

Voir aussi[modifier | modifier le code]