Translators

O computador não entende nenhuma linguagem de programação. A única linguagem que ele entende é a linguagem de máquina. Por isso, todo o código escrito em qualquer linguagem de programação precisa ser traduzido para linguagem de máquina. A linguagem de máquina é também chamada de linguagem binária, porque ela só pode ser representada por dois valores: 0 ou 1. Esses dois valores estão associados aos circuitos do computador, que podem estar ligados (1) ou desligados (0).

Linguagens compiladas usam um compilador para produzir um código de máquina, baseado no código da linguagem de programação. É o código de máquina que é executado pelo computador. Linguagens interpretadas usam um interpreter para interpretar as instruções do programa e executá-las, sem que um código de máquina seja completamente gerado antes que o programa possa ser executado. Nos dois casos, há a geração do código de máquina.

O que você escreve na sua linguagem de programação é chamado de source code (código-fonte). No dia-a-dia, a gente se refere ao código-fonte como apenas código.

Em linguagens compiladas, é gerado um object code (código objeto) baseado no código do programa. Quando você usa um interpreter, não há a geração do código objeto. A geração do código de máquina é feita de outras maneiras.

Geralmente, você não escolhe qual ferramenta usar (compilador ou interpreter). Isso depende da linguagem de programação.

O processo de compilação consiste primeiro na tradução da linguagem de programação para Assembly, que é uma linguagem de baixíssimo nível. Então, uma ferramenta chamada assembler (montador) é responsável pela geração do código objeto (em linguagem de máquina), a partir do código em Assembly. Como tanto o compilador como o interpreter traduzem o código de uma linguagem para outra, eles são chamados de translators (tradutores).

Linguagens que usam interpreters contém scripts ao invés de programas. Por isso, elas são chamadas de linguagens de scripting. Exemplos de linguagens de scripting: Python, Lua, Perl e PHP.

O compilador ou o interpreter que traduz o seu código te informa se ocorreu algum erro de sintaxe. Ele faz isso emitindo uma ou mais mensagens de erro contendo detalhes do erro, como uma mensagem descritiva e a linha onde o erro ocorreu.

Quando um compilador é usado, depois que o código de um programa é traduzido em linguagem de máquina, um executável é gerado e salvo, de forma que ele pode rodar qualquer número de vezes sem que o passo de tradução precise ser repetido. Já no interpreter, esse passo de tradução é repetido a cada execução do script interpretado. Isso faz com que linguagens compiladas, de uma maneira geral, sejam mais rápidas do que linguagens interpretadas.

Muita gente pode achar que esse assunto está fora do escopo de Lógica de Programação. De fato, está, mas eu disse no primeiro tutorial que eu falaria de outras coisas que fossem ser úteis para o aprendizado de iniciantes. Acho que esse assunto é importante porque ele pode te ajudar na escolha da sua linguagem e também a entender um pouco como as linguagens de programação funcionam. Não tem problema se você não entendeu tudo ou entendeu pouca coisa. Mais pra frente, você pode voltar nesse tutorial e ele pode ser de muita importância pra você quando você escolher a sua linguagem.