Typage fort

Dans cet article, nous explorerons la vie fascinante de Typage fort, un personnage qui a laissé une marque indélébile dans l'histoire. Depuis ses humbles débuts jusqu'à son ascension vers la gloire, Typage fort a relevé de nombreux défis et a excellé dans son domaine d'expertise. Au fil de ces pages, nous analyserons son héritage et les leçons que nous pouvons tirer de sa carrière. De plus, nous examinerons l'influence de Typage fort sur la société actuelle et son impact sur le monde contemporain. Sans aucun doute, cet article promet d’être une plongée profonde dans la vie et l’œuvre de Typage fort, présentant une perspective unique et révélatrice sur son héritage durable. Rejoignez-nous dans ce voyage pour tout découvrir sur Typage fort et son impact sur le monde !

En informatique, un langage de programmation est dit fortement typé lorsqu'il garantit que les types de données employés décrivent correctement les données manipulées. Par opposition, un langage sans typage fort peut être faiblement typé, ou pas du tout typé (mais en pratique ce n'est jamais le cas).

Depuis son invention, le terme de typage fort a été employé avec de nombreux sens contradictoires, ce qui lui a enlevé presque toute signification. La liste qui suit rassemble quelques affirmations possibles sur le typage fort, avec des exemples de langages fortement typés et respectant le critère.

Conditions

Il est assez difficile de donner une définition précise du typage fort. Un langage est fortement typé si :

  1. La compilation ou l'exécution peuvent détecter des erreurs de typage. Sinon, le langage est dit faiblement typé ;
  2. Les conversions implicites de types sont formellement interdites. Si de telles conversions sont possibles, le langage est faiblement typé. Exemples répondant à ce critère : OCaml, Haskell, PureScript.

Avec cette dernière approche, on pourrait par exemple obtenir le classement suivant :

Typage Fort Faible
Statique Ada, Java, Pascal, Rust ou même Visual Basic avec l'Option Explicit Langage C : short add (int x, int y) { return x+y; }

C++ : Personne p; p < 13;

Dynamique Ruby, Python JavaScript : "2" + 4 → "24"

Dans l'exemple JavaScript, l'ambigüité provient de ce qu'un même symbole, +, est employé pour représenter aussi bien la concaténation que l'addition, selon le contexte.

Dans l'exemple C++, le compilateur va implicitement appeler le constructeur de Personne(int) et l'opérateur < pour faire une comparaison, ce qui permet ici par exemple de savoir si l'âge de la personne est inférieur à 13.

Ainsi, un expert en langages de programmation raconte :

« J'ai passé quelques semaines à essayer de clarifier les terminologies « fortement typé », « statiquement typé », « sûr », etc., et j'ai trouvé cela extraordinairement difficile… L'utilisation de ces termes est si diverse qu'elle les rend presque inutiles. »

— Benjamin C. Pierce (en)

Voir aussi

Sur les autres projets Wikimedia :