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

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

Saved successfully!

Ooh no, something went wrong!