Bonjour a tous,
Est-ce que quelqu'un peut m'expliquer un peu les différences entre "analyser en statique le code C" et "analyser en dynamique le code C"
merci
Bonjour a tous,
Est-ce que quelqu'un peut m'expliquer un peu les différences entre "analyser en statique le code C" et "analyser en dynamique le code C"
merci
En supposant qu'il s'agit de 'code source C' :
- En statique, c'est uniquement tester la syntaxe et la sémantique.
- En dynamique, c'est simuler l'exécution pour détecter des zones de code non utilisées, des variables utilisées sans intialisation, des variables écrites 2 fois de suite etc. Bref, des bizarreries qui révèlent le plus souvent une erreur de codage...
Je déterre ce sujet pour éviter de créer un sujet doublon, il me semble que ce sujet n'est pas encore résolu!
Pour l'analyse statique, j'utilise Klocwork mais pour l'analyse dynamique, que me conseillerez-vous?
Il y a beaucoup de choses qui peuvent analysées en statique.Qu'est ce que tu appelles "tester la sémantique" en statique ? Parceque ça inclu pour moi justement les zones de code non utilisées, les variables non initialisées, variables réécrites, etc. :-)
Il serait trop long de les énumérer. Un exemple est la déclaration d'un tableau de n éléments et l'écriture à un indice >= N.
Ce n'est qu'un exemple. Je passe sur une variable forcée à une valeur, non modifiée et testée à une valeur différente quelques lignes en dessous... -> code mort.
Klocwork, QA C sont des exemples d'analyseurs statiques. Je n'en connais pas de gratuit.
Pour l'analyse dynamique Polyspace est bien... il faut quand même avoir son carnet de chèques.
Wikipedia détaille cela:
http://fr.wikipedia.org/wiki/Analyse..._de_programmes
logiscope peut être également ajouté à la liste des analyseurs statiques.
RATSJe n'en connais pas de gratuit.
Flawfinder
Yasca
Splint
Cppcheck
mais moins ergonomique (ligne de commande)
Partager