Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapitre 6 - Exemples <strong>de</strong> résultats<br />
Figure 29. Graphe <strong>de</strong><br />
dépendances pour le co<strong>de</strong><br />
x<br />
x<br />
do.c<br />
1<br />
2 int main (void){<br />
3 int x;<br />
4 x = 0;<br />
5 do {<br />
6 x++;<br />
7 }while(x < 2);<br />
8 return 0;<br />
9 }<br />
x<br />
Au <strong>de</strong>uxième tour <strong>de</strong> boucle, les instructions qui y sont appelées<br />
ont leur numéro <strong>de</strong> ligne avec un compteur d appel égal à 2, c està-dire<br />
les lignes 6 :2 pour l incrémenattion <strong>de</strong> la valeur <strong>de</strong> x et la<br />
ligne 7 :2 pour la condition du while. La <strong>de</strong>uxième évaluation <strong>de</strong><br />
la condition n étant pas vérifiée la ligne d instruction 8 :1 est<br />
exécutée pour retourner la valeur 0.<br />
6.2.4. Boucle for<br />
for.c<br />
b<br />
i=0; i=1;<br />
Pour l exemple <strong>de</strong> boucle for,<br />
nous avons utilisé le programme<br />
« for.c », qui fait <strong>de</strong>ux tours <strong>de</strong><br />
boucles for et qui modifie la<br />
valeur <strong>de</strong> la variable b (initialisée<br />
à 5) à chaque tour <strong>de</strong> boucle en<br />
fonction <strong>de</strong> la variable i. La<br />
variable i étant l in<strong>de</strong>x <strong>de</strong> boucle.<br />
1 int main (void){<br />
2 int i,b;<br />
3 b = 5;<br />
4 for (i=0; i < 2; i++){<br />
5 b += i;<br />
6 }<br />
7 return b;<br />
8 }<br />
b<br />
b<br />
i=2;<br />
Nous voyons alors sur le graphe généré que les conditions dans<br />
l appel <strong>de</strong> la boucle for sont correctement évaluées, les <strong>de</strong>ux<br />
tours <strong>de</strong> boucles sont bien effectuées et la valeur <strong>de</strong> b est<br />
également bien modifiée. Cependant, bien que nous ayons les<br />
bons résultats et les bonnes évaluations <strong>de</strong> conditions pour<br />
chaque boucle, nous voyons que notre graphique se comporte <strong>de</strong><br />
manière innatendue. Il effectue en effet un retour sur chaque<br />
appel <strong>de</strong> condition, ce qui n est pas le cas dans notre programme.<br />
De plus, notre outil considère l initialisation et l incrémentation<br />
<strong>de</strong> l in<strong>de</strong>x i ainsi que l évaluation <strong>de</strong> la condition, comme étant<br />
effectués par une même instruction i<strong>de</strong>ntifiée par la ligne du for<br />
(4 :1, 4 :2, 4 :3 dans notre exemple). Or notre programme ne<br />
i=3;<br />
Figure 30. Graphe <strong>de</strong><br />
dépendances pour le co<strong>de</strong><br />
65