Compilation à la volée

Compilation à la volée

Dans le domaine de la programmation informatique, la compilation à la volée, aussi connue sous le nom de traduction dynamique (just-in-time compilation ou JIT compilation en anglais), est une technique visant à améliorer la performance de systèmes bytecode-compilés par la traduction de bytecode en code machine natif au moment de l'exécution. La compilation à la volée se base sur deux anciennes idées : la compilation de bytecode et la compilation dynamique.

Sommaire

Description

Dans un système bytecode-compilé tel que Limbo, Smalltalk, Perl, Lua, GNU CLISP, ou de Java, le code source est traduit dans une représentation intermédiaire: le bytecode. Le bytecode n'est pas un code machine pour un ordinateur en particulier, il est portable entre différentes architectures. Le bytecode est ensuite interprété ou bien exécuté par une machine virtuelle.

Un environnement de compilation dynamique est un environnement dans lequel le compilateur peut être utilisé durant l'exécution. Par exemple, la plupart des systèmes Common Lisp ont une fonction compile qui peut créer de nouvelles fonctions compilées durant l'exécution. Alors qu'elle peut être avantageuse pour du débogage interactif, la compilation dynamique s'avère moins utile pour un système déployé.

Dans un environnement de compilation à la volée, la compilation est la première étape, réduisant le code source à une représentation intermédiaire optimisable appelée bytecode. Celui-ci est déployé sur le système cible. Lorsque le code est exécuté, le compilateur à la volée le traduit en code machine natif. Ceci peut être fait sur un fichier ou sur une fonction. Les fonctions peuvent être compilées juste avant leur exécution (d'où l'expression « à la volée »).

Le but est de combiner les avantages de la compilation native et du bytecode. Les tâches ardues telles que l'analyse du code source original et les optimisations sont accomplies à la compilation, bien avant le déploiement -- la compilation du bytecode en code machine est beaucoup plus rapide que depuis le code source. Le bytecode déployé est portable, à l'inverse du code machine pour une architecture donnée. Les compilateurs de bytecode en code machine sont plus faciles à écrire, parce que le compilateur du bytecode a déjà fait la plupart du travail.

Histoire

La traduction dynamique a été initiée dans le début des années 1980 par l'implémentation commerciale de Smalltalk: VisualWorks. Actuellement, elle est aussi utilisée dans la plupart des implémentations de la machine virtuelle Java.

Voir aussi

Articles connexes

Liens externes

  • GNU lightning — Une bibliothèque générant du code assembleur à l'exécution

Sources


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Compilation à la volée de Wikipédia en français (auteurs)

Игры ⚽ Нужна курсовая?

Regardez d'autres dictionnaires:

  • Compilation a la volee — Compilation à la volée Dans le domaine de la programmation informatique, la compilation à la volée, aussi connue sous le nom de traduction dynamique (just in time compilation ou JIT compilation en anglais), est une technique visant à améliorer la …   Wikipédia en Français

  • Compilation À La Volée — Dans le domaine de la programmation informatique, la compilation à la volée, aussi connue sous le nom de traduction dynamique (just in time compilation ou JIT compilation en anglais), est une technique visant à améliorer la performance de… …   Wikipédia en Français

  • Java (langage) — Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript. Java …   Wikipédia en Français

  • Java (informatique) — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Java (langage de programmation) — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Java 5 — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Langage Java — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Langage de programmation Java — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Oak (langage) — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Arbre de traces — Un arbre de traces est une structure de données utilisé pour la compilation à la volée de code source. Les arbres de traces sont utilisés pour tracer (enregistrer dans une trace) le code exécuté sur les points chauds, et le compiler. Quand les… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”