Bytecode de Java
ewrite
Le bytecode de Java de est la forme d'instructions que la machine virtuelle de Java de exécute. Chaque instruction de Bytecode est d'un byte de longueur (par conséquent le nom), ainsi le nombre de bytecodes est limité à 256. Non chacune des 256 valeurs possibles de bytecode est employé. En fait, le Sun Microsystems , les créateurs originaux du langage de programmation de Java , la machine virtuelle de Java de et d'autres composants de l'environnement d'exécution de Java, ont mis de côté un certain nombre de valeurs pour être de manière permanente unimplemented.
Relation à Java
Un programmeur de Java n'a pas besoin de se rendre compte de ou de comprendre le bytecode de Java du tout. Cependant, comme suggéré dans le journal de developerWorks d'IBM , " ; Bytecode d'arrangement et quel bytecode est susceptible d'être produit par des aides d'un compilateur de Java le programmeur de Java de la même manière que la connaissance de l'assembleur aide le C ou le C++ programmer.
Produire du bytecode
Le langage le plus commun visant la machine virtuelle de Java de en produisant le bytecode de Java est Java. À l'origine seulement un compilateur a existé, le compilateur de Javac de Sun Microsystems, qui compile le code source de Java au bytecode de Java ; mais parce que toutes les caractéristiques pour le bytecode de Java sont disponibles, d'autres parties ont fourni les compilateurs qui produisent le bytecode de Java. Les exemples d'autres compilateurs incluent :
Le Jikes , compile du langage de programmation de Java au bytecode de Java développé par IBM , mis en application dans le C++
Le café express, compile du langage de programmation de Java au bytecode de Java, seulement Java 1.0
Le compilateur de Gnu de pour Java , GCJ, compile du langage de programmation de Java au bytecode de Java, peut également compiler au code machine indigène.
Quelques projets fournissent des assembleurs de Java pour permettre écrire le bytecode de Java à la main. Le code assembleur peut être également produit par la machine, par exemple par le compilateur visant la machine virtuelle de Java de . Les assembleurs notables de Java incluent :
Le jasmin , prend des descriptions textuelles pour des classes de Java, écrites dans un simple assembleur-comme la syntaxe using l'ensemble d'instruction de machine virtuelle de Java et produit d'un dossier de classe de Java
Jamaïque , un macro langage d'assemblage pour la machine virtuelle de Java de . La syntaxe de Java est employée pour la définition de classe ou d'interface. Des corps de méthode sont spécifiés using des instructions de bytecode.
D'autres ont développé des compilateurs pour différents langages de programmation visant la machine virtuelle de Java, telle que le
Le JGNAT et le AppletMagic , compilent du langage de programmation d'ADA au bytecode de Java
Langage de programmation routinier , langue scripting d'A basée sur Java
C aux compilateurs de byte-code de Java
Exécution de Bytecode
Le bytecode de Java est conçu pour être exécuté dans la machine virtuelle de Java de . Il y a aujourd'hui disponible de plusieurs machines virtuelles libre ou film publicitaire.
voient également :
la machine virtuelle de Java de
Si l'exécution du bytecode de Java dans une machine virtuelle de Java n'est pas souhaitable, un réalisateur peut également compiler le code source de Java ou le bytecode de Java directement au code machine indigène avec des outils tels que le compilateur de GNU de pour Java .
Exemple
Considérer le code suivant de Java.
lang=" de
Un compilateur de Java pourrait traduire le code de Java ci-dessus en code de byte comme suit, assumer ce qui précède a été mis dans une méthode :
Code : 0 : iconst_2 1 : istore_1 2 : iload_1 3 : sipush 1000 6 : if_icmpge 44 9 : iconst_2 10 : istore_2 11 : iload_2 12 : iload_1 13 : if_icmpge 31 16 : iload_1 17 : iload_2 18 : irem # reste 19 : ifne 25 22 : 38 goto 25 : iinc 2, 1 28 : 11 goto 31 : #84 getstatic ; //Field Java/lang/System.out : Ljava/io/PrintStream ; 34 : iload_1 35 : #85 invokevirtual ; //Method java/io/PrintStream.println : (I) V 38 : iinc 1, 1 41 : 2 goto 44 : retour
Les bytecodes de Java
le de voient les spécifications de machine virtuelle de Java de Sun pour des descriptions plus détaillées
.
| Random links: | Chelmsford, le Massachusetts | Whisperer de cheval | Benjamin Smith (politicien américain) | Mise en place de Fenella | Feminines de Devi et de Vrkis | Bytecode_de_Java |