Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
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