Código intermediário por máquinas virtuais

0

Eu estava lendo sobre o conjunto de instruções e me deparei com a seguinte linha do WIKI

Some virtual machines that support bytecode as their ISA such as Smalltalk, the Java virtual machine, and Microsoft's Common Language Runtime, implement this by translating the bytecode for commonly used code paths into native machine code.

Por favor, corrija-me no meu entendimento geral sobre "conjunto de instruções" e no processamento de máquinas virtuais da mesma:

  • Basicamente, os processadores têm instruções ou conjuntos de instruções carregados em sua memória que são usados para processamento. Agora os processadores recebem entrada binária que não é nada além da representação “binária” dessas instruções. Certo?
  • O conjunto de instruções também pode ser chamado de "código de máquina" ou "linguagem de máquina". Certo?
  • A JVM aceita o bytecode Java e produz a forma binária de “conjunto de instruções” ou “código de máquina” ou “linguagem de máquina”. Assim, posso dizer que bytecode é a linguagem de máquina da JVM porque a JVM entende o bytecode ou toma bytecode como entrada e produz a forma binária de “código de máquina” para o Sistema Operacional e então o SO converterá ainda mais “ código de máquina ”em“ código de máquina ”para o processador . Certo?
    • A parte em negrito na minha pergunta acima está entre as principais coisas que quero entender. Como não temos JVMs para processadores específicos, temos JVMs para SOs específicos, então, meu entendimento é que a JVM não pode produzir "código de máquina" para o processador e produzirá o "código de máquina" para o SO e, finalmente, o SO produzirá o "código de máquina" a ser executado pelo processador.

Por favor, confirme meu entendimento e, se estiver errado, por favor, forneça detalhes e / ou referência sobre o motivo pelo qual ele está incorreto e qual é o conceito corrigido.

    
por pjj 05.02.2017 / 00:03

0 respostas