Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo Compilation

Uma questão de interpretação: de bytecodes a código de máquina na JVM

  Uma questão de interpretação: de bytecodes a código de máquina na JVM Esta é uma tradução/adaptação do artigo original em inglês . No primeiro artigo desta série , vimos como os aplicativos baseados em JVM usam um conjunto de instruções virtuais na forma de bytecodes para criar um aplicativo de plataforma neutra. A JVM converte esses bytecodes no tempo de execução nas instruções para a plataforma na qual o aplicativo está sendo executado. Antes de nos aprofundarmos na compilação just-in-time (JIT), vamos ver como a JVM começa a executar bytecodes usando um interpretador. A ideia básica do interpretador é simples. Cada método, começando com public static void main(), possui um conjunto de bytecodes que definem o que ele fará. A JVM interpretará o primeiro bytecode (assumindo que a instrução não resulta em um salto para um endereço diferente ou chamará outro método) continuará com cada bytecode em sequência. Interpretar é o processo de converter um bytecode em qualquer ch...

Compreendendo a compilação Java

  Compreendendo a compilação Java: de bytecodes a código de máquina na JVM Esta é uma tradução/adaptação do artigo original em inglês . Para a plataforma Java, a compilação é diferente de muitas outras linguagens por causa da Java Virtual Machine (JVM). Para executar um aplicativo com a JVM, o código Java é compilado em um conjunto de arquivos de classe que contém instruções para a JVM, não o sistema operacional e o hardware em que a JVM está instalada. Isso fornece o recurso Write Once, Run Anywhere , pelo qual o Java é famoso. Como acontece essa conversão de instruções de máquina virtual para instruções nativas? Esta não é uma pergunta simples de responder, então decidi escrever uma série de posts explorando os diferentes aspectos de interpretação e compilação adaptativa dentro da JVM. Vamos começar com alguns conceitos fundamentais que desenvolvemos no restante da série do blog. Código fonte O que é Código Fonte? O código-fonte são declarações e expressões de alto nível qu...