2015-11-19 2 views
0

Pourquoi l'interprétation pure est-elle plus préférée pour les langages de script que pour les langages de programmation? Je veux dire pourquoi pour les langages de script, le programme n'est pas converti en langage machine, puis exécuté. D'après ce que j'ai lu, l'une des raisons est la rapidité, à des fins de script, la vitesse n'est pas si importante et parce que l'interprétation est plus lente, donc cela n'a pas d'importance pour les langages de script. Y a-t-il plus de raisons d'utiliser l'interprétation dans les scripts?Interprétation dans les langages de script

Répondre

2

Certaines de vos hypothèses sont incorrectes.

Cependant, les raisons normales de choisir l'interprétation plutôt que la compilation (code machine) sont:

  • il est plus facile (moins d'effort) pour mettre en œuvre un interprète,

  • interprètes sont plus faciles à port vers plusieurs plates-formes,

  • La compilation en code natif prend du temps, ce qui peut ralentir le cycle de développement et/ou entraîner des temps de démarrage plus longs de l'application dans le cas de compilation JIT .


1 - Ce dernier est complexe, et il est difficile de faire une comparaison équitable. Le flip-side est que après le démarrage lent, le programme compilé JIT s'exécute beaucoup plus vite que le code interprété, et peut-être plus rapide que le code compilé statiquement.

+0

Merci, mais j'ai lu dans une question similaire que les interprètes prennent beaucoup plus de temps. Voici le lien vers la question- http://cs.stackexchange.com/questions/9945/how-does-interpreting-a-script-work – geek123

+0

@ geek123 - Cela ne contredit en rien ce que j'ai écrit. Temps de mettre en œuvre! = Temps d'exécution. –

0

Le script, et en particulier un script interactif (shell de commande, etc.) est le plus souvent pour le code qui s'exécute une seule fois, et dans un tel scénario, la latence est plus importante que toute autre chose. Les JIT ne seront d'aucune utilité dans ce cas. Vous attendez un retour de votre REPL immédiatement, et attendre que chacune de vos commandes soit compilée avant de les exécuter est rarement justifiée.

Par conséquent, une interprétation ad hoc ou, mieux, une compilation très légère (par exemple, la compilation vers une machine virtuelle de haut niveau qui est ensuite interprétée) est préférée à une compilation de poids lourds appropriée.