Inférence de types

Infos
L'inférence de types est un mécanisme qui permet à un compilateur ou un interpréteur de rechercher automatiquement les types associés à des expressions, sans qu'ils soient indiqués explicitement dans le code source. Il s'agit pour le compilateur ou l'interpréteur de trouver le type le plus général que puisse prendre l'expression. Les avantages à disposer de ce mécanisme sont multiples : le code source est plus aéré, le développeur n'a pas à se soucier de re
Inférence de types

L'inférence de types est un mécanisme qui permet à un compilateur ou un interpréteur de rechercher automatiquement les types associés à des expressions, sans qu'ils soient indiqués explicitement dans le code source. Il s'agit pour le compilateur ou l'interpréteur de trouver le type le plus général que puisse prendre l'expression. Les avantages à disposer de ce mécanisme sont multiples : le code source est plus aéré, le développeur n'a pas à se soucier de retenir les noms de types, l'interpréteur fournit un moyen au développeur de vérifier (en partie) le code qu'il a écrit et le programme est peu modifié en cas de changement de structure de données. Les expressions restent les plus générales possibles - l'inférence de types va de pair avec le polymorphisme, puisque le compilateur génère des types abstraits au besoin. Enfin, le compilateur, lui, dispose de toutes les informations de type, il y a un typage fort et statique, ce qui lui permet de produire du code plus sûr et plus efficace. Le mécanisme d'inférence de type est présent dans certains langages de programmation fonctionnelle.

Exemple

Caml est un exemple de langage qui utilise l'inférence de type. Le code suivant est écrit dans le langage Caml. let rec longueur = function -> 0 | h::t -> 1 + (longueur t);; Le code présenté montre qu'il s'agit d'une fonction qui prend en entrée une liste quelconque (vide ou non) et qu'il renvoie un entier. En fait, cette fonction permet de calculer la longueur d'une liste. Lorsque ce morceau de code est envoyé à l'interpréteur, celui-ci répond : longueur : 'a list -> int = Caml indique ainsi qu'il reconnait que la fonction longueur prend en entrée un quelque chose de type 'a list, c'est-à-dire une liste quelconque (d'entiers, de réels, de chaînes de caractères, etc.). Caml reconnait aussi que la fonction renvoie une valeur de type entier (int).

Liste des langages utilisant l'inférence de type

- Haskell
- ML
- Caml
- F
-
- Boo Catégorie:Compilateur Catégorie:Théorie des types de:Typableitung en:Type inference es:Inferencia de tipos ja:型推論 ru:Модель типизации Хиндли — Милнера zh:类型推论
Sujets connexes
Boo (langage)   Caml   Code source   Compilateur   F Sharp   Haskell   Interprète (informatique)   Liste   ML (langage)   Polymorphisme (informatique)   Programmation fonctionnelle   Type (informatique)  
#
Accident de Beaune   Amélie Mauresmo   Anisocytose   C3H6O   CA Paris   Carole Richert   Catherinettes   Chaleur massique   Championnat de Tunisie de football D2   Classement mondial des entreprises leader par secteur   Col du Bonhomme (Vosges)   De viris illustribus (Lhomond)   Dolcett   EGP  
^