Bytecode
Bytecode é código de programa que foi compilado a partir do código-fonte em código de baixo nível criado para um interpretador de software. Ele pode ser executado por uma máquina virtual como uma (JVM) ou compilado posteriormente em código de máquina, que é reconhecido pelo processador.
Diferentes tipos de bytecode usam diferentes sintaxes, que podem ser lidas e executadas pela máquina virtual correspondente. Um exemplo popular é o bytecode Java, que é compilado a partir do código-fonte Java e pode ser executado em uma Máquina Virtual Java (JVM). Veja abaixo exemplos de instruções de bytecode Java.
- new (criar novo objeto)
- aload_0 (carregar referência)
- istore armazenar valor (inteiro)
- ladd adicionar valor (long)
- swap (trocar dois valores)
- areturn (retornar valor de uma função)
Embora seja possível escrever bytecode diretamente, isso é muito mais difícil do que escrever código em uma linguagem de alto nível, como Java. Por isso, arquivos de bytecode, como arquivos .CLASS do Java, geralmente são gerados a partir do código-fonte usando um compilador, como javac.
Bytecode versus linguagem assembly
Bytecode é semelhante à linguagem assembly, pois não é uma linguagem de alto nível, mas ainda é relativamente legível, ao contrário da linguagem de máquina. Ambos podem ser considerados "linguagens intermediárias" que ficam entre o código-fonte e o código de máquina. A principal diferença entre os dois é que o bytecode é gerado para uma máquina virtual (software), enquanto a linguagem assembly é criada para uma CPU (hardware).
Teste seus conhecimentos