19.06.2014 Views

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!