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

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

Saved successfully!

Ooh no, something went wrong!