Processador Híbrido - Compilação e Interpretação


Muitas linguagens modernas adotam um sistema de processamento híbrido, que combina as duas abordagens de linguagens compiladas ou interpretadas para otimizar a portabilidade e o desempenho.

Note

Leia o texto sobre Diferença entre compilador e interpretador para entender esses ganhos do processador híbrido.

Abaixo um fluxo em duas etapas que é a base da filosofia do Java “Write Once, Run Anywhere” (Escreva uma vez, Rode em qualquer lugar).

graph TD
    subgraph "Fase 1: Compilação"
        A["<b>Código-Fonte</b><br/>Arquivo <code>.java</code>"] -->|Executado pelo javac| B["<b>Bytecode</b><br/>Arquivo <code>.class</code><br/><i>(Plataforma-Independente)</i>"];
    end

    subgraph "Fase 2: Execução"
        subgraph "JVM (Java Virtual Machine)<br/>"
            B --> C{Carregador de Classes};
            C --> D[Interpretador de Bytecode];
            D -- "Executa instrução por instrução" --> F["<b>Execução no S.O. / CPU</b><br/><i>(Código Nativo)</i>"];
            D -- "Identifica trecho de código frequente<br/>(HotSpot)" --> E["<b>Compilador JIT</b><br/>(Just-In-Time)"];
            E -- "Compila bytecode para<br/>código nativo otimizado" --> F;
        end
    end

    style A fill:#D6EAF8,stroke:#3498DB
    style B fill:#D1F2EB,stroke:#1ABC9C
    style F fill:#FCF3CF,stroke:#F1C40F
  • Bytecode: É uma representação intermediária, de baixo nível, mas que não é atrelada a nenhuma arquitetura de processador específica.

  • Compilador JIT: é um recurso da JVM onde ela monitora o código em execução e, caso detecte que um método ou laço está sendo executado repetidamente (um “HotSpot”), ela aciona o compilador JIT, traduzindo o trecho específico de bytecode em código de máquina nativo daquele computador.

Referências


Compiladores - Anotações 12-08-2025