risposta

9

Alcuni di loro generare bytecode. Alcuni hanno un sistema runtime che viene eseguito come interprete. Alcuni hanno una miscela dei due. Dopotutto, la JVM è una CPU (che semplicemente non esiste realmente) con una certa architettura e un certo insieme di istruzioni. Lo si targetizza con il generatore di codice nello stesso modo in cui generi codice oggetto per qualsiasi CPU. (Ora per essere onesti, il suo set di istruzioni è molto focalizzato sulle capacità e sui bisogni di Java, ma è ancora abbastanza generale da supportare altri modelli.)

Esistono vari modi per generare il codice byte JVM. È possibile gestire manualmente le proprie routine di generazione di file .class (poiché il formato e il set di istruzioni è well-specified). È possibile utilizzare un numero di librerie come ASM o BCEL (che è l'approccio più comune, penso). Oppure è possibile generare codice Java come rappresentazione intermedia e quindi compilarlo con i soliti strumenti Java.

Esegui il codice nello stesso modo in cui esegui il codice compilato da Java: il runtime Java carica i file .class generati e inizia a funzionare. Anche questo fa parte dello specification.

Problemi correlati