Javascript est-il compilé ou interprété? [fermé]

151

Javascript peut-il être qualifié de pur langage interprété? Ou a-t-il également une saveur compilée? Quelqu'un pourrait-il expliquer les raisons derrière les deux choses, selon la vérité.

netemp
la source
31
Veuillez envisager d'ajouter un commentaire lors du vote pour que la question puisse être améliorée. Merci.
netemp
2
@Blindy: dites-vous que la distinction entre compilé et interprété ne devrait pas être là du tout?
netemp
23
5 votes négatifs, et pas un seul commentaire citant la raison pour laquelle le vote défavorable était là. Un peu décevant.
netemp
1
C'est peut-être une manière courante de classer les langues, mais cela ne la rend pas plus utile.
1
@NetEmp (notez que je n'ai pas voté contre - mais j'ai voté pour migrer vers les programmeurs) Ce n'est pas le bon endroit pour poser ce type de question - lisez la FAQ sur les questions à poser ici - cela devrait être dans la section de programmation de StackExchange
Manse

Réponses:

72

Allez lire les réponses à cette question

/software/138521/is-javascript-interpreted-by-design

La réponse que j'ai acceptée est excellente et devrait aider à répondre à votre question.

Pour moi personnellement, je me méfie un peu de l'idée d'appeler un langage interprété ou compilé. C'est une décision d'implémentation, qui ne fait pas partie de la spécification du langage. Si vous voulez parler de JavaScript compilé ou interprété, posez-le dans le contexte d'une implémentation réelle de la spécification du langage.

Matt Esch
la source
19

JavaScript est interprété lors de l'exécution par le navigateur client. Il existe cependant un outil appelé Rhino JavaScript Compiler qui compile le JavaScript en fichiers de classe Java.

HellaMad
la source
7
Qu'en est-il du V8 et autres?
25
Le V8 n'a jamais rien inclus de tel qu'un interpréteur, et la plupart des principaux moteurs JS disposent désormais de compilateurs JIT. Ainsi, dire que "JavaScript est interprété" est évidemment faux (ou peut-être que votre définition d'interpréteur / compilateur l'est).
@delnan: Merci pour la perspicacité du V8. Ainsi, JS n'est pas un langage purement interprété.
netemp
2
Compilateur JavaScript Rhino. Vous savez, si vous voulez que votre langue interprétée soit interprétée par une autre langue interprétée.
Trevor Hickey
1
Comme d'autres l'ont dit, cela n'est plus vrai depuis un certain temps. Oui, dans les premiers jours, on pouvait dire que Javascript était interprété, mais il a parcouru un très long chemin depuis.
John Weisz