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.

Chapitre 5 - Description technique du travail réalisé<br />

un lien vers l instruction suivante ira du sommet gauche du losange, et si la condition est fausse le<br />

lien vers l instruction suivante ira du sommet droit. On peut voir ci-<strong>de</strong>ssous un exemple <strong>de</strong> son<br />

utilisation :<br />

if (condition)<br />

instruction_1<br />

else<br />

instruction_2<br />

Condition<br />

vraie<br />

Condition<br />

fausse<br />

Instruction_1<br />

Instruction_2<br />

Figure 22. Propriétés du noeud représentant une condition.<br />

Les scripts <strong>de</strong> nos graphes <strong>de</strong> dépendances sont générés <strong>de</strong> manière automatique à partir <strong>de</strong> la<br />

base <strong>de</strong> données, grâce à trois scripts awk (cf. annexe VI) placés dans le dossier bin/ . Le<br />

premier fichier se nomme « formaterdata.awk » et permet <strong>de</strong> supprimer <strong>de</strong>s informations<br />

superfluesextraites concernant l exéction interne à EiC. Le <strong>de</strong>uxième fichier se nomme<br />

« graph1.awk » et permet <strong>de</strong> générer les premières lignes du script dot c'est-à-dire l entet du fichier<br />

(en rouge sur la figure 23) et le co<strong>de</strong> générant l echelle d enchainement <strong>de</strong>s lignes d instructions<br />

placée à gauche du graphe <strong>de</strong> dépendance (en bleu sur la figure 23). Le troisième script est<br />

nommé « graph2.awk » qui génère le co<strong>de</strong> dot adéquant suivant le type <strong>de</strong> ligne dans la base<br />

donnée 20 , à savoir le type du n ud 21 , sa couleur, son comportement (dans le cas d une condition<br />

par exemple) ou encore un lien reliant <strong>de</strong>ux n uds (cas d un Use) . On peut voir à la figure 23 ci<strong>de</strong>ssous<br />

un exemple <strong>de</strong> co<strong>de</strong>s dot générés en fonction <strong>de</strong> la base <strong>de</strong> données obtenue pour le<br />

programme « var2.c » donné en figure 21.<br />

digraph G { ranksep=.75; size="7.5,7.5";<br />

{ no<strong>de</strong> [shape=plaintext, fontsize=16];<br />

"main:1" -> "4:1" -> "5:1" -> "end"; }<br />

{ rank = same;<br />

"main:1"; "#main:1"; }<br />

"#main:1" [label="main-1", shape=box, color=red]<br />

var2.c :<br />

# main:1<br />

main 1<br />

# 4:1 <br />

Def 1-0 12 4 1<br />

# 5:1 <br />

Use 1-0 4 1 5 1<br />

Return 12 5 1<br />

"#main:1" -> "#4:1"<br />

{ rank = same;<br />

"4:1"; "#4:1"; }<br />

"#4:1" [label="1-0=12", color=green]<br />

"#4:1" -> "#5:1"<br />

{ rank = same;<br />

"5:1"; "#5:1"; }<br />

"#5:1" [label="Return-1\n12", shape=box]<br />

}<br />

Figure 23. Co<strong>de</strong> dot généré à partir <strong>de</strong> la base <strong>de</strong> données.<br />

20<br />

Use, Def, main, Return, Cond, Call.<br />

21 Rectangle, ellipse, losange<br />

57

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

Saved successfully!

Ooh no, something went wrong!