Bytecode

Le bytecode est un code intermédiaire plus concret (plus proche des instructions machines) que le code source, il n'est pas directement exécutable. Il est contenu dans un fichier binaire qui représente un programme, tout comme un fichier objet produit par un compilateur.

Il est appelé bytecode du fait de son format où chaque instruction est codée en binaire.

Puisque c'est un code qui n'est pas exécutable directement par un processeur (à l'exception de certains processeurs gérant le bytecode Java nativement), il est utilisé par les créateurs de langages de programmation en guise de code intermédiaire réduisant la dépendance vis-à-vis du matériel et facilitant son interprétation sur plusieurs architectures.

Certains compilateurs utilisent le bytecode comme représentation intermédiaire. Certains systèmes, appelés « traducteurs dynamiques » ou « compilateurs à la volée » (JIT (just-in-time) compilers en anglais), traduisent le bytecode en code machine juste avant l'exécution, afin d'en augmenter la vitesse.

Un programme à base de bytecode est exécuté par un interpréteur appelé machine virtuelle, du fait qu'il s'agit d'un programme qui exécute le code tout comme un microprocesseur. L'avantage est la portabilité : le même bytecode peut être exécuté sur diverses plates-formes ou architectures pour lesquelles un interpréteur existe. Un programme sous forme de bytecode peut donc être transmis d'une machine à une autre et être exécuté sans modification par la machine exécutrice quelle qu'elle soit. L'avantage est le même que pour les scripts, qui sont directement interprétés (et non compilés en bytecode). Cependant, le bytecode est plus concret, plus compact et plus facile à manipuler qu'un script, prévu, lui, pour être intelligible pour l'homme. De ce fait les performances des interpréteurs de bytecode sont généralement bien meilleures que celles des interpréteurs de scripts.

Pour bénéficier de ces avantages, aujourd'hui de nombreux langages interprétés sont en fait compilés en bytecode avant d'être exécutés par un interpréteur. C'est le cas par exemple de PHP (lorsqu'il est utilisé pour des applications), de Tcl et de Python. Un programme Java est habituellement transmis sous forme de bytecode à une machine hôte qui utilisera un compilateur à la volée pour traduire le bytecode en code machine avant exécution. Les implémentations actuelles de Perl et de Ruby utilisent non pas du bytecode, mais une structure en arbre qui se rapproche de la représentation intermédiaire des compilateurs.

Les p-Codes diffèrent des bytecodes par le codage de leurs opérations, qui peut être de plusieurs octets avec une taille variable, tout comme les opcodes de nombreux processeurs. Ils ont un plus haut niveau descriptif, comme « afficher cette chaine de caractères » ou encore « effacer l'écran ». Le BASIC et quelques versions de Pascal utilisent un p-Code.

Exemples

Voir aussi

Sur les autres projets Wikimedia :


Wikimedia Foundation. 2010.

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

Regardez d'autres dictionnaires:

  • Bytecode — is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software interpreter as well as being suitable for further compilation into machine code. Since instructions are processed by software …   Wikipedia

  • Bytecode — Saltar a navegación, búsqueda El bytecode es un código intermedio más abstracto que el código máquina. Habitualmente es tratado como un fichero binario que contiene un programa ejecutable similar a un módulo objeto, que es un fichero binario… …   Wikipedia Español

  • Bytecode — Der Bytecode ist in der Informatik eine Sammlung von Befehlen für eine virtuelle Maschine. Bei Kompilierung eines Quelltextes mancher Programmiersprachen oder Umgebungen – wie beispielsweise Java – wird nicht direkt Maschinencode,… …   Deutsch Wikipedia

  • Bytecode — El bytecode es un código intermedio más abstracto que el código máquina. Habitualmente se lo trata como a un fichero binario que contiene un programa ejecutable similar a un módulo objeto, que es un fichero binario que contiene código máquina… …   Enciclopedia Universal

  • bytecode — ● ►en n. m. ►PROG Sorte de code objet, intermédiaire entre le source et le binaire exécutable, utilisé en Java pour permettre un usage multi plateforme de ce langage. Le code n est donc pas directement compréhensible par le processeur, ce qui… …   Dictionnaire d'informatique francophone

  • bytecode —    An intermediate form of computer code produced by Java and other programming languages. Most language compilers create code that is ready to run on a specific kind of processor. Java creates the bytecode in an abstract, processor independent… …   Dictionary of networking

  • bytecode — baitinė programa statusas T sritis informatika apibrėžtis Programa, išreikšta ↑tarpine kalba, kurios leksikos elementai yra ↑baitai. Gaunama sukompiliavus programą, parašytą aukšto lygio ↑programavimo kalba. Yra artima ↑kompiuterinei kalbai.… …   Enciklopedinis kompiuterijos žodynas

  • bytecode — noun P code …   Wiktionary

  • bytecode — n. (Computers) machine language of Java (compatible with all platform) …   English contemporary dictionary

  • bytecode — /ˈbaɪtkoʊd/ (say buytkohd) noun an output code, more abstract than machine code, used as an intermediate code for a compiler. {from the fact that each operation code is one byte in length} …   Australian English dictionary

Share the article and excerpts

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