Précédent Suivant

  Langages sûrs

 

 
De nombreuses propriétés différencient les langages de programmation. Il y a, par exemple, des langages typés et des langages sûrs.
 
Un langage typé possède un système de types permettant de qualifier les valeurs que sait manipuler ce langage à savoir: des valeurs simples comme des chaînes de caractères ou des vecteurs d'entiers mais aussi des valeurs plus compliquées comme des fonctions. Cette vérification est effectuée avant l'exécution et garantit que quelque soit les valeurs réelles que possèderont les variables l'exécution du programme ne saurait mener à une erreur de type (comme, par exemple, l'addition d'un booléen et d'une chaîne). La plupart des langages (C, Caml, Java) sont typés, Scheme ne l'est pas. La vérification de types dénonce rapidement de très nombreuses erreurs ce qui permet de les corriger non moins rapidement. En revanche, tout ne peut être vérifié par typage: une division par zéro, un indice de vecteur hors vecteur, une tentative de lecture d'un fichier qui n'existe pas sont des erreurs hors d'atteinte des sytèmes de types.
 
Un langage sûr est un langage qui, à l'exécution, vérifie que le programme se comporte correctement et qui signale immédiatement toute anomalie. Scheme (comme Caml ou Java) est un langage sûr, C ne l'est pas. Dans un langage sûr, l'addition ne peut être appliquée à un booléen car cette valeur n'est pas un nombre; une division par zéro est également signalée car anormale; enfin, tout accès hors vecteur est dépisté. Pour assurer cette sûreté, les valeurs de Scheme sont typées, il est possible de les interroger à l'aide des prédicats comme string? ou integer? pour connaître leur type.


 

Précédent Suivant