← Todos os guias

Guia · Programação

Compilador e interpretador: dois caminhos de execução

Compilação traduz representações de um programa; interpretação organiza a execução de instruções. Um ambiente pode combinar as duas técnicas. Para entender o caminho real, observe a implementação e suas etapas, em vez de rotular a linguagem inteira.

Escrito pela equipe Compuzilla

Publicado em . Atualizado em .

Nesta leitura
Compuzilla sorrindo ao lado de um diagrama: Compilador e interpretador: dois caminhos de execução.

Compilador e interpretador: dois caminhos de execução

  1. Código-fonte
  2. Transformações do ambiente
  3. Execução
Um ambiente pode combinar tradução e interpretação; a sequência não fixa uma técnica por linguagem. Ilustração: equipe Compuzilla.

A pergunta é sobre o caminho do programa

Você escreve um cálculo numa linguagem. Antes de obter o resultado, ferramentas precisam analisar e processar essa representação. O mesmo problema pode seguir caminhos diferentes conforme o ambiente usado.

Compilar e interpretar descrevem técnicas, não categorias exclusivas de linguagens. Uma linguagem pode ter várias implementações; uma implementação pode aplicar as duas técnicas em etapas diferentes.

Um caminho com ferramentas de compilação

No GCC, o comando que o usuário inicia pode organizar pré-processamento, compilação, montagem e ligação. A entrada passa por transformações. Um arquivo objeto ainda pode precisar ser combinado com outros componentes para formar um executável.

Mesmo quando o executável já existe, seu uso depende de compatibilidade com o sistema e de componentes necessários à execução. Traduzir o código não dispensa ambiente, dados e bibliotecas.

Um caminho com um interpretador

Numa sessão de Python, você fornece uma expressão como 2 + 3 e observa 5. O ambiente administra nomes e aplica as regras da linguagem. Um arquivo com um programa pode ser processado pelo mesmo tipo de ambiente sem interação manual a cada linha.

Essa explicação não exige leitura literal de uma linha de texto por vez. Implementações podem produzir representações intermediárias, como bytecode, e executá-las depois. Outras estratégias acrescentam tradução durante o uso.

O que os diagnósticos conseguem mostrar

Uma ferramenta pode rejeitar uma construção que viola regras da linguagem. Ainda assim, um programa aceito pode calcular o desconto errado ou usar a entrada inadequada. Validade de representação e correção da tarefa são perguntas diferentes.

Desempenho também exige observar a operação concreta. Custo de iniciar, tradução, bibliotecas e quantidade de trabalho influenciam a comparação. O nome da técnica não determina sozinho a velocidade.

Próxima leitura

Leia biblioteca para entender componentes reutilizados nesses ambientes.

Continue aprendendo

  • Verbete Código-fonte — Código-fonte é a representação de um programa escrita em uma linguagem de programação. Pode ser lida e modificada por pessoas e processada por ferramentas. Nem sempre é a mesma representação que o computador usa diretamente durante a execução.
  • Verbete Compilador — Compilador é um programa que traduz código de uma linguagem ou representação para outra. O destino pode ser código de máquina ou uma forma intermediária. Compilar não implica necessariamente gerar um aplicativo completo ou comprovar que ele está correto.
  • Verbete Interpretador — Interpretador é um programa que organiza a execução de instruções de uma linguagem ou representação. Pode trabalhar com o código original ou com uma forma intermediária. Interpretação e compilação podem coexistir no mesmo ambiente.
  • Verbete Linguagem de programação — Linguagem de programação é um sistema de regras para expressar instruções e organizar dados em programas. Sua sintaxe define como escrever; seu significado determina o que as construções fazem quando processadas.

Fontes para aprofundar