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 8 - Conclusion et perspectives<br />
8.1. Limites <strong>de</strong> notre outil d analyse <strong>dynamique</strong> <strong>de</strong><br />
programmes C<br />
Notre outil, comme nous l avons vu tout au long <strong>de</strong> ce mémoire, présente <strong>de</strong>s limites <strong>de</strong><br />
différents ordres. En effet, notre outil, puisque basé sur les informations extraites par l interprète<br />
EiC nous limite pour les capacités <strong>de</strong> ce <strong>de</strong>rnier. Comme nous l avons montré au chapitre 3, EiC<br />
est le seul interprète du domaine public qui soit actuellement capable <strong>de</strong> prendre en charge<br />
l ensemble <strong>de</strong>s spécificités du langage C, mis-à-part la librairie standard du C . De plus,<br />
l outil EiC n étant plus développé <strong>de</strong>puis 2000, sa documentation n étant <strong>de</strong> plus pas finie, nous<br />
<strong>de</strong>vons en comprendre le fonctionnement par nos propres tests et analyses.<br />
Mis à part ces légères limites dues à l interprète utilisé, nous avons relevé d autres limites. Nous<br />
en énumérons les plus importantes ci-<strong>de</strong>ssous :<br />
Notre outil ne prend pas en charge toutes les sépcificités du langage C, il n est donc pas<br />
encore capable d analyser <strong>de</strong>s instructions switch, les structures, les unions, les pointeurs,<br />
ou encore les fonctions récursives.<br />
Notre numérotation <strong>de</strong>s lignes d instructions n est pas encore au point pour gérer les cas<br />
complexes d instructions.<br />
Notre base <strong>de</strong> données ne contient pas encore toutes les informations pour pouvoir<br />
établir <strong>de</strong>s liens spécifiques entre les données, tels que les liens entre les variables locales<br />
et la fonction dans lesquels elles sont définies. Seule la première variable est reliée à la<br />
fonction actuellement.<br />
La représentation graphique <strong>de</strong>s dépendances entre données ne représente pas toutes les<br />
règles <strong>de</strong> dépendances entres les données d un programme C. L affichage <strong>de</strong>s appels <strong>de</strong><br />
fonctions et <strong>de</strong>s tableaux n est pas encore bien géré.<br />
Nous présentons dans la section 8.3.1 les améliorations possibles pour le premier point, les<br />
améliorations concernant les second et troisième points sont abordées à la section 8.2.2 et enfin,<br />
le troisième point est traité dans la section 8.2.3.<br />
8.2. Améliorations possibles<br />
Dans cette section nous voyons quelles améliorations peuvent être apportées à notre outil, dans<br />
les prochains travaux ainsi que les améliorations pouvant rendre notre outil à terme plus complet.<br />
8.2.1. Prise en charge <strong>de</strong>s spécificités du langage C<br />
Pour que notre outil puisse analyser tout programme C, nous <strong>de</strong>vons étendre ses capacités <strong>de</strong><br />
gestion <strong>de</strong>s autres caractéristiques du langage C. Les extensions les plus simples à faire dans un<br />
premier temps consistent à reproduire le modèle <strong>de</strong> génération <strong>de</strong> lignes <strong>de</strong> base <strong>de</strong> données au<br />
format Def et Use pour les variables entières, pour les autres types. Pour cela, il suffit d ajouter<br />
77