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™…