L’analyse des flots de données Analyse:des flots de données
L’analyse des flots de données
est rendue possible par des outils utilisant la théorie
des ensembles. Outre PolySpace, qui a popularisé ce type
d’outils, citons Astrée, QAC et QAC++ qui
intègrent quelques vérifications de ce type également.
L’analyse des flots de données
et de contrôle permet de repérer sans exécuter le
code, par analyse statique, les erreurs suivantes : les
accès concurrents à des variables partagées
non protégées (voir la section L’analyse
des variables partagées de ce chapitre), l’accès
en lecture à des variables non initialisées, l’accès hors
bornes de tableaux et autres tampons (« buffers » en
anglais), le code mort (non atteignable), les débordements
lors des calculs arithmétiques sur des entiers et flottants,
les exceptions arithmétiques (les divisions par zéro,
les racines carrées de nombres négatifs, etc.),
les conversions illégales ou dangereuses de types et les
boucles infinies.
Lorsqu’une des erreurs précédentes
est détectée dans le code source, des informations
sur la localisation de l’erreur, le type et la description
du contexte de l’erreur sont données. Dans l’outil
PolySpace, les lignes de code d’un programme sont classées
suivant trois ...