Le bytecode Java est un bytecode destiné à regrouper des instructions exécutables par une machine virtuelle Java. Par extension, il désigne un flux d'octets binaire au format d'une classe Java. Ce flux est habituellement le résultat de la compilation d'un code source, ce code source n'étant pas obligatoirement écrit en langage Java. Ce bytecode peut être exécuté sous de nombreux systèmes d'exploitation par une 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.
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 (Scala, Groovy, Jython, JRuby, Kotlin, Clojure...). Dans ce cas, un compilateur spécifique traduit les fichiers sources rédigés dans un de ces langages et produit un fichier .class, lequel 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 ainsi créer une classe Python qui hérite d'une classe Java, et inversement.
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
Oolong
Apache BCEL : manipulation du bytecode Java en Java
ASM, une alternative à BCEL
Spécification du jeu d'instructions de la machine virtuelle
Catégorie:Java (langage)
Ca
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Les étudiants perfectionnent leurs connaissances en Java et les mettent en pratique en réalisant un projet de taille conséquente. Ils apprennent à utiliser et à mettre en œuvre les principaux types de
This course provides an introduction to Distributed Ledger Technology (DLT), blockchains and cryptocurrencies, and their applications in finance and banking and draws the analogies between Traditional
Ce cours aborde les concepts fondamentaux de la programmation et de la programmation orientée objet (langage JAVA). Il permet également de se familisarier avec un environnement de développement inform
Dalvik est une machine virtuelle destinée aux téléphones mobiles et tablettes tactiles, qui est incorporée dans le système d'exploitation Android. Dalvik est destiné à permettre l'exécution simultanée de plusieurs applications sur un appareil de faible capacité (peu d'espace mémoire et peu de puissance de calcul). Créé par Dan Bornstein, Dalvik fait partie du runtime, le moteur qui permet l'exécution des applications pour Android. Le nom est celui d'un village de pêcheurs en Islande, pays d'origine de son auteur.
Kotlin est un langage de programmation orienté objet et fonctionnel, avec un typage dynamique qui permet de compiler pour la machine virtuelle Java, JavaScript, et vers plusieurs plateformes en natif (grâce à LLVM). Son développement provient principalement d'une équipe de programmeurs chez JetBrains basée à Saint-Pétersbourg en Russie (son nom vient de l'île de Kotline, près de St. Pétersbourg). Google annonce pendant la conférence Google I/O 2017 que Kotlin devient le second langage de programmation officiellement pris en charge par Android après Java.
GCJ (GNU Compiler for Java) était le compilateur Java du projet GNU, sous licence libre. Il a été un des composants de GCC de la version 3 jusqu'à la version 6, avant d'en être retiré à partir de la version 7. Contrairement au compilateur du SDK Java de Sun Microsystems produisant exclusivement du bytecode Java, gcj opte pour une approche traditionnelle en produisant du code natif pour l'architecture matérielle. De plus GCJ est également capable de fonctionner comme un compilateur Java classique en produisant du bytecode, et permet également de transformer du bytecode vers du code natif.
Ce cours initie à la programmation en utilisant le langage Java. Il ne présuppose pas de connaissance préalable. Les aspects plus avancés (programmation orientée objet) sont donnés dans un cours suiva
The purpose of this MOOC is to offer a complementary capstone project to our existing MOOCs in introduction to programming. This will offer the students the possibility to both stabilize the already a
Le cours suivi propose une introduction aux concepts de base de la programmation orientée objet tels que : encapsulation et abstraction, classes/objets, attributs/méthodes, héritage, polymorphisme, ..
This semester project report describes a prototype tracing tool that records the behavior of a Java program during its execution. It explains the two methods that were attempted to implement the tool, one using the Java debug interface, which gave poor res ...
Java on Truffle is an early-stage implementation of a Java Virtual Machine in Java. So far its development has focused on compatibility and functionality, not addressing performance in a systematic way. This thesis presents a series of experiments on Java ...
We present syntax rewriting rules that translate Scala 2 code into Scala 3. Two major syntactic changes are introduced: new control structure syntax and significant indentation. We describe the design and the implementation of these rules and evaluate thei ...
Explore les applications financières des blockchains, y compris DeFi, les protocoles de prêt, les DAO, les prêts flash et les solutions d'assurance basées sur des jetons.
Explore les protocoles de prêt DeFi, les modèles de taux d'intérêt, les mécanismes de DEX basés sur l'AMM et les orientations futures de la recherche.
Explore les applications financières des blockchains, couvrant la définition, l'histoire, Ethereum, la finance décentralisée, les contrats intelligents, les jetons, les méthodes d'évaluation, les défis de la double dépense, les signatures numériques, et les fonctions de hachage cryptographique.