MyLeoNes™

Como os compiladores transformam código em programas — Informática, 14–17 anos

Um programa escrito por uma pessoa ainda não está no formato que um processador consegue executar. Os compiladores e interpretadores fazem essa ligação, verificando o código e traduzindo-o em acções.

O código-fonte precisa de um tradutor

Escreves código-fonte para ser lido por pessoas, usando palavras como print ou if. Um processador entende instruções muito mais simples, por isso um compilador traduz o programa inteiro antes de o executar, enquanto um interpretador traduz e executa uma parte de cada vez. A intenção do programa mantém-se.

Porque precisamos de tradução?

O problema é que as pessoas precisam de nomes e estrutura fáceis de ler, mas os processadores precisam de padrões de instruções exactos. Os primeiros programadores podiam introduzir instruções de máquina directamente, mas isso era lento, frágil e difícil de verificar. As linguagens e os tradutores surgiram para permitir descrever tarefas sem reescrever todos os pormenores do processador.

De uma linha a uma acção

Vejamos a linha print(2 + 3). Primeiro, o tradutor reconhece print como uma instrução para mostrar algo. Depois, verifica que 2 + 3 é válido e calcula o valor 5, ou cria instruções para que o processador o calcule. Por fim, o programa envia 5 para o ecrã.

Um compilador não corrige tudo

É comum pensar que o código que compila tem de estar correcto. É uma ideia razoável, porque o tradutor verificou a gramática e alguns tipos. Mas print(2 - 3) pode compilar perfeitamente e produzir um resultado inesperado; um programa pode funcionar e resolver o problema errado. A tradução verifica a forma, não todas as intenções.

Onde os tradutores são importantes

Sempre que instalas uma aplicação compilada ou executas código num navegador, algum tradutor ajudou a prepará-lo. Um compilador pode optimizar um jogo para responder depressa, enquanto um interpretador torna fácil experimentar um pequeno programa em vários sistemas. A escolha afecta a velocidade, a portabilidade e a rapidez com que se encontra um erro.

Continua a explorar

Outras línguas

A carregar o MyLeoNes™…