- Langage interprété (informatique)
-
En informatique, un programme écrit en langage interprété n'est pas exécuté directement par la machine mais par un autre programme appelé interprète ; il doit être en fonctionnement sur la machine où l'on veut lancer un programme interprété. Au contraire, un programme écrit en langage compilé est traduit en instructions lisibles par la machine (code natif) et peut être exécuté indépendamment de tout autre programme (à l'exception du système d'exploitation, dans la plupart des cas).
Quelques exemples de langages parfois interprétés :
- BASIC
- PHP, Javascript, Ruby, Perl, etc : les langages de script en général.
Il existe aussi des langages dits semi-interprétés ou semi-compilés, pour lesquels il existe un compilateur traduisant le programme non pas en « langage-machine » mais en un code intermédiaire assez analogue à de l'assembleur. Pour pouvoir exécuter ces programmes sur une machine donnée, il faut y faire tourner un interpréteur pour ce code intermédiaire. Le code intermédiaire est souvent appelé p-code, Byte Code, code objet… ; l'interpréteur peut, lui, être appelé p-machine ou machine virtuelle.
Java est sans doute le plus célèbre des langages semi-interprétés, se basant sur la machine virtuelle Java (JVM). Un autre exemple de langage semi-interprété est le Pascal dans sa version UCSD ou encore Python. Par ailleurs, certains langages permettent intrinsèquement le comportement interprété et semi-interprété (le Groovy, entre autres, sur la JVM).
Certains langages à l'origine uniquement interprétés deviennent également des langages compilés ou semi-compilés pour des raisons de performance. Ils ne sont parfois compilés qu'au début de leur exécution, voire au fur et à mesure de celle-ci (on parle alors de compilation à la volée — ou JIT). C'est le cas par exemple de C♯ (JIT) mais aussi de langages comme Python avec des implémentations alternatives comme PyPy (JIT), Ruby avec YARV (semi-compilation), PHP avec HipHop (compilation en code natif)…
Plus exigeants en ressources et la plupart du temps moins rapides à l'exécution que les langages compilés en code natif, les langages interprétés gardent toutefois un intérêt notamment par leur facilité de mise en œuvre et la portabilité des programmes, qui peuvent la plupart du temps être lancés sans modification sur toute plateforme où fonctionne l'interpréteur.
Wikimedia Foundation. 2010.