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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Analyse</strong> <strong>dynamique</strong> <strong>de</strong> programmes C<br />

Chapitre 6 - Exemples <strong>de</strong> résultats<br />

N ous avons vu au long <strong>de</strong>s chapitres précé<strong>de</strong>nts <strong>de</strong>s extraits <strong>de</strong> graphes <strong>de</strong> dépendances<br />

<strong>dynamique</strong>s <strong>de</strong> données générés suivant le modèle <strong>de</strong> graphes <strong>de</strong> dépendances <strong>de</strong> l outil<br />

DDFgraph pour le le langage Lisp (cf. chapitre 1). Ce chapitre, présente les résultats que nous<br />

obtenons grâce à la technique <strong>de</strong> génération <strong>de</strong> graphe décrite dans le chapitre précé<strong>de</strong>nt, qui<br />

présente les données <strong>de</strong> manière différente que pour le modèle suivi. Nous voyons dans ce<br />

chapitre les résultats <strong>de</strong> graphes <strong>dynamique</strong>s <strong>de</strong> dépendances entre données obtenus pour<br />

quelques exemples <strong>de</strong> programmes manipulant <strong>de</strong>s variables entières. Nous présentons ces<br />

résulats par ordre croissant <strong>de</strong> complexité.<br />

6.1. Opérations sur <strong>de</strong>s variables entières<br />

Nous prenons pour premier exemple le fichier « ext_affvar1.c », qui effectue <strong>de</strong> simples opérations<br />

sur <strong>de</strong>s valeurs entières, retournant la valeur d une <strong>de</strong>s variables manipulées en fin <strong>de</strong> programme.<br />

1 /* ext_affvar1.c */<br />

2 int g;<br />

3 int main()<br />

4 {<br />

5 int x,y,a,b;<br />

6 x = 12;<br />

7 y = 8;<br />

8 g = 15;<br />

9 a = x + y;<br />

10 x = a - g;<br />

11 a ++;<br />

12 return a;<br />

13 }<br />

Nous pouvons voir sur la figure 24 le graphe <strong>de</strong> dépendances<br />

<strong>dynamique</strong> <strong>de</strong>s variables entières manipulées par le programme<br />

source. Nous avons ajouté, pour une meilleure lecture du graphe,<br />

près <strong>de</strong> chaque n ud définissant une variable, le symbole<br />

correspondant à l i<strong>de</strong>ntifiant <strong>de</strong> celle-ci 22 .<br />

En observant le graphe <strong>de</strong> plus près, nous pouvosn remarquer que<br />

la variable b n est pas affichée sur le graphe, ceci est expliqué par le<br />

fait que cette <strong>de</strong>rnière n est pas manipulée pendant l exécution du<br />

programme. Nous pouvons ainsi voir sur ce graphe les<br />

dépendances entre les variables, comme par exemple la variable x<br />

est définie en ligne 6 puis sa valeur est utilisée en ligne 9 pour<br />

définir la valeur <strong>de</strong> la variable a, puis elle est encore modifiée en<br />

ligne 10 en prenant une nouvelle valeur issue d une opération sur<br />

les variables a et g.<br />

Par contre il n existe pas <strong>de</strong> lien représenté entre les variables x, y et<br />

g avec la fonction main dans laquelle ils sont définis, ce problème<br />

d affichage est traité dans le chapitre 8.<br />

x<br />

y<br />

a<br />

a<br />

g<br />

x<br />

22<br />

Automatiserle rempalcement <strong>de</strong> l i<strong>de</strong>ntifiant interne <strong>de</strong>s variables par leur<br />

symbole est l une <strong>de</strong> nos perspectives (cf. chapitre 8).<br />

Figure 24. Graphe <strong>de</strong><br />

dépendances <strong>dynamique</strong><br />

60

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

Saved successfully!

Ooh no, something went wrong!