PrécédentSommaire

Typage fort

Le type d'une donnée définit la façon dont elle sera codée en mémoire (donc l'éventail des valeurs qu'elle pourra prendre) et les opérations qui y seront applicables. Par exemple, un nombre entier sera stocké d'une certaine façon mais un nombre en virgule flottante (avec partie décimale) tout autrement, et l'addition de 2 nombres entiers et celles de 2 nombres réels (en virgule flottante) sont 2 opérations bien distinctes pour l'ordinateur.

En Pascal, il est possible d'additionner un entier et un réel de façon transparente, simplement parce qu'une conversion implicite est insérée par le langage. En Ada, il ne suffit pas d'écrire A + B. Le développeur doit dans ce cas préciser une conversion explicite qui s'applique sur l'une des variables et il est ainsi sûr d'utiliser l'opération qu'il vise (addition entière ou réelle), enlevant toute ambiguïté.

Comme en Pascal, de nouveaux types peuvent être définis par le programmeur pour un usage particulier, mais les possibilités sont plus élaborées. Ada introduit notamment la notion de subtype : un "nouveau" type qui en fait dépend d'un type de base en ajoutant des contraintes. 2 types définis parallèlement seront incompatibles (on ne pourra pas les mélanger sans conversion explicite) tandis qu'un subtype sera compatible avec son type de base. Ceci permet à l'informaticien de bien baliser les opérations en choisissant l'une des possibilités : si on a un nombre de pommes et un nombre de carottes, on ne voudra normalement pas les additionner mais cela restera possible (souligné par une conversion).

Les types sont particulièrement utiles pour la définition des paramètres de sous-programmes. Un sous-programme ayant un paramètre déclaré comme un tableau de 1000 éléments (1 dimension) ne pourra pas être appelé en utilisant un autre type, comme un tableau à 2 dimensions (erreur à la compilation), ce qui donnerait des résultats imprévisibles. En fait les possibilités des paramètres ont été étendues par rapport à Pascal : un tableau unidimensionnel dont on ne connaît pas les bornes peut par exemple être employé, le sous-programme acceptant alors des tableaux unidimensionnels compatibles de différentes tailles, ce qui le rend plus général.

La notion de types de données est très intéressante, parce que l'effet est de resserrer les boulons tout au long d'un traitement, mais aussi parce qu'elle permet au développeur de communiquer en grande partie ses idées sur la façon dont le problème doit être traité, au compilateur comme aux autres informaticiens qui effectueront la maintenance.