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 3<br />
Les interprètes C existants<br />
Comme on peut le voir sur la figure 15, la fonction strcmp() n est pas celle <strong>de</strong> la librairie<br />
standard C puisque le fichier hea<strong>de</strong>r «string.h » dans lequel elle est définie n a pas été inclus au<br />
programme «compare.ch ». De plus cette fonction compare <strong>de</strong>ux chaînes <strong>de</strong> caractères <strong>de</strong> types<br />
différents l une <strong>de</strong> type char * comme en C et l autre chaîne est <strong>de</strong> type string_t qui est un<br />
type propre au langage Ch. On peut aussi remarquer que le co<strong>de</strong> Ch est enregistré dans un fichier<br />
d extension .ch, qui contient en première ligne l appel à l interprète Ch sous la forme :<br />
# !/bin/ch S .<br />
L interprète Ch offre <strong>de</strong> plus la possibilité d utiliser <strong>de</strong>s comman<strong>de</strong>s Shell, awk et <strong>de</strong>s librairies<br />
graphiques telles que OpenGL. Il permet, comme Un<strong>de</strong>rC, Cint et EiC, <strong>de</strong> saisir <strong>de</strong>s instructions<br />
C en ligne <strong>de</strong> comman<strong>de</strong>s et d exécuter un fichier écrit en C <strong>de</strong> manière aisée. On peut voir cela à<br />
la figure 16.<br />
Figure 16. Aperçu <strong>de</strong> l exécution du programme testinterpC.c par Ch<br />
Ch est accompagné <strong>de</strong> trois documents (<strong>de</strong> type pdf <strong>de</strong> plus <strong>de</strong> 1000 pages en tout) et man, assez<br />
complets, permettant <strong>de</strong> mieux comprendre son langage et son fonctionnement.<br />
Ch existe en version standard gratuite, dédiée à la recherche et aux étudiants, et une version<br />
professionnelle payante. Nous avons testé la version standard <strong>de</strong> Ch dans l espoir <strong>de</strong> pouvoir<br />
obtenir le co<strong>de</strong> source par la suite, malheureusement sans succès. Les tests réalisés sont les<br />
mêmes que ceux appliqués à l outil EiC étant donnés que l outil gère toute la bibliothèque<br />
standard C, ainsi que les principaux éléments pouvant construire un quelconque programme<br />
source C, c'est-à-dire essentiellement : les pointeurs, les tableaux, l appel <strong>de</strong> fonctions, gestion <strong>de</strong>s<br />
boucles, la récursivité et encore les structures <strong>de</strong> contrôle.<br />
Ch permet aussi <strong>de</strong> gérer un co<strong>de</strong> source avec grand nombre <strong>de</strong> lignes <strong>de</strong> co<strong>de</strong>s. Il a été<br />
cependant incapable d exécuter le co<strong>de</strong> <strong>de</strong> l interprète Lisp constitué <strong>de</strong> plusieurs fichiers sources,<br />
ceci bien qu il supporte en théorie la possibilité d interpréter ce type <strong>de</strong> programmes sources. En<br />
effet, l exécution <strong>de</strong> programmes composés <strong>de</strong> plusieurs fichiers sources nécessite <strong>de</strong>s<br />
manipulations préalables sur ce <strong>de</strong>rnier. Le co<strong>de</strong> source n étant <strong>de</strong> toute manière pas accessible,<br />
les tests pour cet outil n ont pas été au <strong>de</strong>là.<br />
Le langage Ch permettrait aussi <strong>de</strong> créer <strong>de</strong>s programmes avec <strong>de</strong>s points <strong>de</strong> contrôle grâce aux<br />
fonctions Ch, mais cela nécessite une étu<strong>de</strong> plus approfondie <strong>de</strong> ses capacités, difficile à réaliser<br />
du fait du manque <strong>de</strong> documentation à ce sujet.<br />
33