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