Bytecode
Il bytecode è codice di programma che è stato compilato da codice sorgente in codice di basso livello progettato per un interprete software. Può essere eseguito da una macchina virtuale come una (JVM) oppure ulteriormente compilato in codice macchina, riconosciuto dal processore.
Diversi tipi di bytecode utilizzano sintassi diverse, che possono essere lette ed eseguite dalla macchina virtuale corrispondente. Un esempio diffuso è il bytecode Java, che viene compilato dal codice sorgente Java e può essere eseguito su una Java Virtual Machine (JVM). Di seguito sono riportati alcuni esempi di istruzioni bytecode Java.
- new (crea un nuovo oggetto)
- aload_0 (carica un riferimento)
- istore memorizza un valore (intero)
- ladd somma un valore (long)
- swap (scambia due valori)
- areturn (restituisce il valore di una funzione)
Sebbene sia possibile scrivere direttamente il bytecode, è molto più difficile che scrivere codice in un linguaggio di alto livello, come Java. Per questo motivo, i file bytecode, come i file .CLASS Java, vengono generalmente generati dal codice sorgente utilizzando un compilatore, come javac.
Bytecode e linguaggio assembly
Il bytecode è simile al linguaggio assembly perché non è un linguaggio di alto livello, ma è comunque in parte leggibile, a differenza del linguaggio macchina. Entrambi possono essere considerati "linguaggi intermedi" che si collocano tra il codice sorgente e il codice macchina. La differenza principale è che il bytecode viene generato per una macchina virtuale (software), mentre il linguaggio assembly viene creato per una CPU (hardware).
Metti alla prova le tue conoscenze