Bytecode Java

Restez toujours informé : suivez-nous sur Google (☆)

Introduction

Langages à objets
C++ - C# - D

Delphi - Eiffel - Groovy

Java - Lisaac - Python - Ruby

Simula - Smalltalk

Visual Basic - WLangage
Langages impératifs
APL - ASP - Assembleur

BASIC - C - Cobol - Natural

Forth - Fortran - Limbo

Logo - Pascal - Perl - PHP
Langages fonctionnels
Haskell - ML/OCaml

Lisp/Common Lisp

Scheme - XSLT
Langages déclaratifs
Clips - Prolog
Langages concurrents
Ada 95 - Erlang
Voir aussi
Conception - Codage

Tests - Optimisations

Le bytecode Java est le résultat de la compilation d'un programme dont le code source est en Java par le compilateur Java. Ce bytecode peut être exécuté sous de nombreux systèmes d'exploitation par l'interpréteur Java ou la machine virtuelle Java.

Le bytecode est un code binaire, ce qui permet un traitement plus rapide que le code source Java, et qui rassemble (compile) tous les codes dispersés dans différents fichiers lors de l'écriture du programme.

Du bytecode sans Java

La machine virtuelle Java fonctionne à l'identique sur plusieurs architectures physiques d'ordinateur. Elle n'est pas spécifique au langage Java et de nombreux développeurs l'utilisent pour faire tourner des programmes écrits dans bien d'autres langages que Java (Groovy, Rhino, Python, Ruby, Tcl, ...). Dans ce cas un compilateur spécifique traduit les fichiers sources rédigés dans un de ces langages et produit un fichier .class qui pourra être exécuté dans une machine virtuelle Java (JVM). Il est possible de créer une application dont des morceaux sont écrits dans plusieurs de ces langages. On peut aussi créer une classe Python qui hérite d'une classe Java. Ou l'inverse.

Assembleurs de bytecode

Les fichiers binaires de classes Java (les .class) peuvent aussi être générés au moyen d'assembleurs de bytecode, qui permettent de contourner certains aspects du langage Java. Par exemple, alors que les appels de méthode sont résolus dynamiquement par le compilateur (à certaines exceptions près, comme les méthodes privées) il est possible, à l'aide d'un assembleur de bytecode, de lier statiquement les appels de fonctions, comme à l'aide des opérateurs de qualification de Simula (Qua) ou du C++ ('::).

  • Jasmin (langage)
  • Oolong (langage)