Meilleure réponse
La vérification de type est effectuée par le vérificateur de type qui vérifie que le type dune construction (constante, variable, tableau, liste, objet) correspond à ce qui est attendu dans son contexte dutilisation. Cela garantit que certains types derreurs de programmation seront détectés et signalés. Par exemple, considérez lexpression suivante impliquant lopérateur modulo 8\% 3,5 cette expression entraînera une erreur car lopérateur modulo attend deux entiers. Le vérificateur de type doit connaître – Les constructions syntaxiques dans le langage (par exemple, les opérateurs) – Les types de langage de base (int, real) – Les règles pour assigner des types aux constructions Par exemple, « si les deux opérandes de + sont int, le résultat est int »
Il existe deux types de vérification de type Statique et Dynamique
Vérification de type statique: vérification de type effectuée au moment de la compilation. Lorsque vous utilisez ces langages, vous êtes obligé de déclarer le type de variables avant de les utiliser (compilateur doit savoir à quel type de données appartient la variable). Par exemple, considérons une instruction en c ++ int a = 10; ici, le compilateur a besoin de connaître le type de données de la variable « a » avant de lutiliser. Par exemple, C, C ++, JAVA, C # sont des Langages à typage statique
Dynamique Vérification de type: Vérification de type effectuée au moment de lexécution. Lorsque vous utilisez ces langages, vous navez pas besoin de spécifier ou de déclarer le type de variable à la place, le compilateur lui-même détermine le type dune variable lorsque vous lui attribuez une valeur pour la première fois. Considérons maintenant quelques instructions en python: str = « Python » str2 = 10 Ici, vous navez pas besoin de déclarer le type de données. Le compilateur lui-même saura à quel type appartient la variable lorsque vous lui affectez une valeur pour la première fois (str1 est de type de données « String » et str2 est de type « int »). Par exemple, VBScript, Python sont des langages typés dynamiquement.
Réponse
La vérification de type est un test pour voir si lopération sur variables utilise un type compatible. Différentes langues ont différents niveaux de compatibilité variable. Le langage fortement vérifié de type a des règles strictes sur les types de variables dans lexpression. De lautre côté de la médaille, il existe des langages qui permettent de mélanger différents types. Ces langages compenseront en partie les types mixtes en utilisant certaines règles de conversion de variables.
Par exemple, dans certains langages de type strict, vous ne pouvez ajouter que deux entiers ou deux nombres à virgule flottante mais signaler une erreur si vous essayez pour ajouter un entier à un flottant. Dans dautres langages, si vous ajoutez un entier à un float, il peut implicitement convertir lentier en float puis effectuer laddition.
C ++ est quelque part au milieu. En C ++, il autorise certaines conversions implicites. C et C ++ ont quelques failles. Tout dabord, sappelle le casting. La conversion consiste essentiellement à indiquer au compilateur une chose dune variable comme «ce type» par opposition à la valeur déclarée. Par exemple, dans lexemple ci-dessus, si nous voulons que le float soit traité comme un int, nous pouvons convertir le float en un int.
Exemple: int x, a; float y, b;
b = x + y;
a = x + (int) y; ou vous voudrez peut-être a = (int) (x + y);
Puisque les pointeurs sont généralement typés, nous pouvons utiliser la conversion pour faire ressembler une structure à un autre type de structure.
typedef struct {/ * membres * /} A;
typedef struct {/ * membres * /} B;
Une hache;
B * bp;
bp = &ax; // Erreur: différents types de pointeurs!
bp = (B *) &ax; // définit efficacement une superposition A avec B comme une union
Avec les pointeurs, il y a aussi un void * qui est un pointeur générique. Permet une utilisation là où tout type de pointeur est autorisé, comme les fonctions de type mem, par ex. memcpy.