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 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

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

Saved successfully!

Ooh no, something went wrong!