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 4<br />
Exploration <strong>de</strong> l interprète EiC<br />
Le fichier est alors exécuté sans pour autant générer un fichier binaire, comme le ferait un<br />
compilateur. Notons que le programme « var.c » n est exécuté par l appel à EiC en mo<strong>de</strong> batch<br />
que s il contient la définition d une fonction main(). En effet, la fonction main est considérée<br />
par EiC comme le point <strong>de</strong> départ du programme. Cette remarque s applique aussi au mo<strong>de</strong><br />
interactif <strong>de</strong> EiC, qui ne permet pas d exécuter un fichier source C sans que ce <strong>de</strong>rnier possè<strong>de</strong> la<br />
définition d une fonction main(). Les prototypes possibles pour définir la fonction main()<br />
sont décrits dans la sous-section 4.1.3.<br />
Avec l appel <strong>de</strong> EiC en mo<strong>de</strong> batch, le fichier <strong>de</strong> co<strong>de</strong> source qu on lui donne en argument est<br />
considéré avec tous les fichiers hea<strong>de</strong>rs qu il inclut comme une seule unité à traduire et à<br />
interpréter. De plus, il n y a aucun fichier d historisation (« EiChist.lst ») créé, contrairement à<br />
l utilisation du mo<strong>de</strong> interactif.<br />
Il existe <strong>de</strong>s particularités d exécution qui sont communs aux mo<strong>de</strong>s batch et interactif : le mo<strong>de</strong><br />
batch possè<strong>de</strong> la possibilité <strong>de</strong> spécifier <strong>de</strong>s options d exécution, certaines ont même les mêmes<br />
fonctionnalités que celles du mo<strong>de</strong> interactif. Seul le mo<strong>de</strong> d activation <strong>de</strong> ces options change<br />
d un mo<strong>de</strong> à l autre. On a vu dans la section précé<strong>de</strong>nte que les options sont toujours précédées<br />
par le caractère «: ». Pour le mo<strong>de</strong> batch, les options sont toujours précédées du caractère «- », à<br />
la suite <strong>de</strong> ce caractère on peut cumuler les options les unes après les autres, tout comme les<br />
comman<strong>de</strong>s Shell en environnement Unix/ Linux. La liste complète <strong>de</strong> ces options est donnée en<br />
annexe II. Quelques options sont cependant présentées ci-<strong>de</strong>ssous avec la trace <strong>de</strong> leur exécution.<br />
Mais avant cela, voici le format général <strong>de</strong> la comman<strong>de</strong> eic peut être utilisée en mo<strong>de</strong> batch :<br />
eic [-Directives pour le préprocesseur C] [-Options pour EiC] [ [fichier] [arguments] ]<br />
Ci-<strong>de</strong>ssous quelques exemples d utilisation <strong>de</strong>s options p, t et c qui permettent respectivement<br />
d afficher le co<strong>de</strong> interprété avant <strong>de</strong> l exécuter, <strong>de</strong> tracer les instructions effectivement exécutées<br />
et enfin <strong>de</strong> mesurer le temps d exécution <strong>de</strong>s instructions :<br />
1. ./eic -ptc var.c<br />
2. int _Argc = 1;char *_Argv[] = {"var.c",(void*)0};<br />
3. : 0<br />
4. int main()<br />
5. {<br />
6. int x;<br />
7. x = 12;<br />
8. return x;<br />
9. }<br />
10. : 0<br />
11. main();<br />
12. 5,<br />
13. [main] 9,10,<br />
14. [::EiC::]<br />
15. : 0<br />
Dans cet exemple, on exécute le fichier « var.c » (cf. ci-<strong>de</strong>ssous). La ligne 1 correspond à l appel <strong>de</strong><br />
la comman<strong>de</strong> eic avec les trois options ptc, décrites plus haut. La ligne suivante montre la<br />
première ligne interprétée par EiC (comme on a activé l option p pour l affichage <strong>de</strong>s instructions<br />
interprétées), qui correspond à l affectation <strong>de</strong>s variables internes à EiC :_Argc et _Argv. Leurs<br />
valeurs nous indiquent que le programme EiC prend le fichier « var.c » en argument et c est donc<br />
cet unique fichier qui sera à traiter, ce qu on peut effectivement voir aux lignes 4 à 9 (option p).<br />
39