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 1 - Introduction<br />
Le monitoring d exécutions est une analyse <strong>dynamique</strong> <strong>de</strong> programmes non interactive.<br />
Le profileur est un moniteur permettant d avoir <strong>de</strong>s informations relatives au temps<br />
d exécution <strong>de</strong>s différents composants du programme.<br />
Il existe principalement <strong>de</strong>ux classes d'analyses : les analyses <strong>dynamique</strong>s et les analyses statiques.<br />
L'analyse <strong>dynamique</strong> déduit <strong>de</strong>s propriétés d'un programme à partir d'une trace d'exécution<br />
particulière. D un point <strong>de</strong> vue pratique l analyse <strong>dynamique</strong> s avère d une plus gran<strong>de</strong> ai<strong>de</strong> aux<br />
développeurs. Elle permet <strong>de</strong> fournir les valeurs <strong>de</strong>s données manipulées lors <strong>de</strong> l exécution du<br />
programme ainsi que l enchaînement <strong>de</strong>s étapes d exécution <strong>de</strong>s diverses instructions appelées. Il<br />
faut également noter que la précision <strong>de</strong>s informations fournies avec ce type d analyse entraîne la<br />
génération d une masse <strong>de</strong> données, ce qui relève les questions <strong>de</strong> représentation graphique et<br />
éventuellement dans certains cas <strong>de</strong> stockage.<br />
Contrairement à cette analyse <strong>dynamique</strong>, l analyse statique se contente <strong>de</strong> lire le programme en<br />
prenant en compte toutes les possibilités d exécutions. Ainsi, l'analyse statique permet d'établir<br />
<strong>de</strong>s propriétés satisfaites par un programme pour toutes ses exécutions et s avère utile pour<br />
comprendre toutes les possibilités d un programme et pour en voir les limites. L'information<br />
recherchée est en général incalculable ou d'une complexité importante, ce qui implique le fait que<br />
l analyse statique ne peut calculer qu'une approximation <strong>de</strong> la solution idéale.<br />
En conséquence, les résultats <strong>de</strong> l'analyse statique sont moins précis mais plus généraux que ceux<br />
fournis par une analyse <strong>dynamique</strong>. C est pour cette raison que <strong>de</strong>s outils basés sur une analyse<br />
<strong>dynamique</strong>, tels que les moniteurs, les profileurs et les débuggeurs sont nécessaires pour<br />
maintenir ou même développer un programme.<br />
1.2. Objectifs du projet d analyse <strong>dynamique</strong> <strong>de</strong><br />
programmes C<br />
1.2.1. Créer un outil d analyse <strong>de</strong> programmes C fiable et<br />
évolutif<br />
Un prototype d outil d analyse <strong>dynamique</strong> <strong>de</strong> programme, DDFgraph, a déjà été développé par<br />
l équipe <strong>de</strong> recherche du laboratoire d Intelligence Artificielle <strong>de</strong> l université <strong>de</strong> Vincennes (paris 8)<br />
par Françoise Balmas et Harald Wertz, pour le langage Lisp [BAL 05]. Le langage Lisp étant un<br />
langage interprété, il y a donc la possibilité <strong>de</strong> modifier l interprète Lisp afin d en extraire <strong>de</strong>s<br />
informations sur l exécution du programme. Ces informations sont par la suite exploitées pour<br />
générer le graphe <strong>de</strong> dépendances <strong>de</strong>s différentes interactions entre variables, pointeurs ou encore<br />
fonctions du programme source. L objectif du présent projet consiste à reproduire le même<br />
schéma d analyse <strong>de</strong> DDFgraph, mais en l adaptant au langage C qui est un langage compilé<br />
contrairement au Lisp.<br />
10