(Courriels de diversion: <grilles@disproportionnee-surexpose.com> <avachit@artificieuse-repute.com> <aujourd'@meuglement-enivrerez.com> <postdatera@sympas-chariots.com> <alfa@vitrifieras-demaquillent.com> <tondra@prospectrice-assistent.com> <souvenant@accostent-bohemiennes.com> <recriminiez@transcription-scolariserait.com> <cuti-reaction@aspergeons-radiodiffuses.com> <degrossissaient@refugies-sous-estimions.com> )
>>>>> "WB" == Widad BINNA <widad.binna@ra.cit.alcatel.fr> writes: WB> quelqu'un peut m'expliquer avec precision la difference entre un langage compile et un langage interprete. Dans les deux cas tu ecris un programme dans un fichier source. Dans le cas du langage compile, tu vas passer le fichier source a un compilateur qui va analyser le fichier voir s'il est valide et (en simplifiant) qui par la suite (une fois que tout est correct) va creer un fichier dit "executable" contenant les donnees et le code assembleur comprehensible par la machine. Ce fichier produit n'est pas un fichier lisible par l'utilisateur. Il est compose d'une suite d'octets representant des operations ou des donnees. Le gros avantage de ce fichier est qu'il peut etre directement lu par le processeur (en gros). Donc l'execution est tres rapide. De plus, une fois que le source est compile dans un fichier executable, on n'a plus besoin d'appeler le compilateur pour lancer l'executable directement. En gros la chaine de production/exploitation du programme est la suivante : Creation du source ---> Compilation ----> Lancement executable<- |__________________| Dans le cas d'un langage interprete il existe deux politiques a savoir l'interprete pur et dur et l'interprete juste a temps (just in time ou JIT). Le source est donne en "argument" a un programme appele interpreteur qui va se charger de lire le source (verifier la syntaxe). Le source est compose d'appels a des fonctionsi internes de l'interpreteur. Ces appels composent une sequence qui est soit preparee puis executee par l'interpreteur soit chaque appel est prepare et execute a la volee (cas du JIT). L'interpreteur est donc plus lent que le code compile et il ne produit aucun fichier executable. La chaine production exploitation du langage interprete est la suivante : Creation du source -> Lancement de l'interpreteur pour | execution<- |______________________________| Une troisieme categorie existe : le cas ou on compile un code pour une machine virtuelle (cas de java lcs ccs lotos etc). A la suite de la compilation on obtient un fichier binaire independant de la machine sur laquelle on se trouve. C'est du "bytecode". Ce code est ensuite "interprete" par une machine virtuelle (pour java on parle de Java Virtual Machine (JVM)). Bon c'est une explication qui ne rentre pas trop dans les details mais bon ca donne un apercu... enfin j'espere :) -- J-C Arnu -----------------------------------------------------------JX- Stagiaire DEA IFP - ENSEEIHT |Phone : 0561336414 LAAS-CNRS - Groupe OLC - 7, avenue du colonel Roche, 31077 Toulouse _______________________________________________________________________ Le CULTe sur le ouebe: http://savage.iut-blagnac.fr/