Sommaire

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 ...