Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapitre 4<br />
Exploration <strong>de</strong> l interprète EiC<br />
Toute fonction dans EiC doit être explicitement définie avec son type <strong>de</strong> retour, quelque<br />
soit le type :<br />
EiC 3> foo(){ int x; x=2; return x; };<br />
Error in ::EiC:: near line 3: Un<strong>de</strong>clared i<strong>de</strong>ntifier foo<br />
Error in ::EiC:: near line 3: Expected ;<br />
Error in ::EiC:: near line 3: Misplaced return statement<br />
Error in ::EiC:: near line 3: Expected ;<br />
EiC 5> int foo(){ int x; x=2; return x; };<br />
(void)<br />
L ancienne syntaxe <strong>de</strong> déclarations et <strong>de</strong> définitions <strong>de</strong> fonctions C n est pas supportée<br />
par EiC, telle que :<br />
int f(value) int value { } /* illégal -> vieux style <strong>de</strong> syntaxe C */<br />
Le préprocesseur <strong>de</strong> EiC ne gère pas la directive #line.<br />
EiC a donné à la directive #inclu<strong>de</strong> plus <strong>de</strong> possibilités comme l inclusion d un fichier<br />
source sans " " ou < >.<br />
Les différences entre EiC et l ISO C sont essentiellement dues au fait que EiC est un interprète<br />
du langage C. Ainsi, EiC est capable <strong>de</strong> supporter l ensemble <strong>de</strong>s spécificités du langage C, mis à<br />
part <strong>de</strong>ux ou trois fonctionnalités et syntaxes non encore supportées [BRE 03]. Ces lacunes ne<br />
sont cependant pas un handicap, elles vont seulement nous contraindre à mettre en forme le co<strong>de</strong><br />
C avant <strong>de</strong> l interpréter avec EiC.<br />
4.2. Structure <strong>de</strong> fichiers<br />
Nous présentons dans cette section l arborescence <strong>de</strong>s principaux fichiers sources constituant<br />
EiC, <strong>de</strong> manière à montrer le rôle que jouent certains fichiers dans la procédure d interprétation<br />
et d exécution du co<strong>de</strong> C. Dans la figure 17 ci-<strong>de</strong>ssous, on peut voir l arborescence <strong>de</strong>s dossiers<br />
avec le détail du contenu <strong>de</strong>s principaux répertoires. Seuls les principaux dossiers et fichiers<br />
impliqués dans le processus d interprétation <strong>de</strong> co<strong>de</strong> sont décrit dans ce qui suit.<br />
Le dossier bin/ contient le fichier binaire « eic » (surligné en jaune sur la figure 17) généré quand<br />
on compile le co<strong>de</strong> source <strong>de</strong> EiC ($make install dans le dossier eic_test/ ).<br />
Les sources <strong>de</strong> l interprète sont situées sous le dossier racine eic_test/ , nous avons<br />
volontairement omis <strong>de</strong> mettre le contenu <strong>de</strong> quelques répertoires ( config/ , doc/ , lib/ ,<br />
module/ et test/ ) qui ne jouent pas <strong>de</strong> rôle dans la procédure d interprétation <strong>de</strong> co<strong>de</strong>.<br />
Les principaux dossiers détaillés dans cette section sont les dossiers inclu<strong>de</strong>/ , main/ et src/ .<br />
Le dossier config/ contient les informations <strong>de</strong> configuration relatives à chaque environnement<br />
sur lequel fonctionne EiC. Le dossier doc/ , comme son nom l indique, contient un ensemble <strong>de</strong><br />
documentations techniques sur EiC. Les dossiers lib/ , module/ et tests/ contiennent<br />
respectivement <strong>de</strong>s fichiers binaires spécifiques à EiC, <strong>de</strong>s modules tels que gnuplot et le<br />
traitement <strong>de</strong>s cgi par EiC et <strong>de</strong>s exemples <strong>de</strong> programmes test pour l interprète.<br />
41