As linguagens de programação geralmente se enquadram em um dos dois tipos de linguagem - linguagens compiladas ou linguagens interpretadas. No entanto, a diferença não está no idioma; está na implementação. Não é errado dizer que ambas são propriedades da implementação de uma linguagem, mas não são propriedades da própria linguagem. Implementar uma linguagem de programação significa fazer a ponte entre o pensamento de alto nível do programador e os zeros e os da máquina. Se feitos com eficiência, os programadores podem se concentrar nos problemas reais, e não nos detalhes das máquinas. Portanto, uma linguagem de programação pode ser compilada ou interpretada com base na implementação.
Bem, ambos os tipos de linguagens de programação têm seus pontos fortes. Alguns idiomas exigem que todo o seu código seja compilado antes que qualquer código possa ser executado. Outros idiomas interpretam cada instrução no momento em que o código é executado. De fato, as linguagens compiladas geralmente são compiladas por um programador no computador do programador; quando o programador compartilha o software, ele compartilha os 0 e 1 compilados, mas não o código-fonte. No entanto, com um idioma interpretado, o código é salvo no mesmo formato digitado e deve ser traduzido em tempo de execução. Vamos dar uma olhada em uma comparação detalhada entre linguagens compiladas e interpretadas.
Os computadores são capazes apenas de executar uma linguagem de máquina, que é a linguagem da unidade central de processamento (CPU) e é muito simples. O objetivo de qualquer implementação de linguagem de programação é converter um programa de origem na linguagem de máquina, para que possa ser executado pela CPU. Todas as implementações de idioma convertem um programa de origem em alguma representação intermediária antes de converter a representação intermediária em linguagem de máquina. O método mais direto de traduzir um programa para linguagem de máquina é chamado de compilação. Um programa escrito em um idioma compilado deve ser convertido em um formato diferente antes de ser executado. O código-fonte deve ser transformado em instruções legíveis por máquina antes da execução. Em resumo, os idiomas cujas implementações são tipicamente compiladores e não intérpretes são chamados de idiomas compilados.
Um intérprete é um programa escrito em outra linguagem e compilado em linguagem legível por máquina. O intérprete em si é o programa de linguagem de máquina e é escrito para ler programas de origem da linguagem interpretada e interpretá-los. Uma linguagem interpretada, pelo contrário, não compila o código-fonte na linguagem de máquina antes de executar o programa. Simplesmente interpreta o código rapidamente. Portanto, você não obtém os benefícios ou as desvantagens dos erros de compilação. Os idiomas interpretados exigem um software chamado intérprete, que pega o código fonte e executa uma instrução por vez. Ao executar um programa de origem interpretado, você realmente executa o intérprete. O intérprete é o programa de linguagem de máquina que executa todos os programas que você escreve na linguagem interpretada.
- Um programa escrito em um idioma compilado deve ser convertido em um formato diferente antes de ser executado. O código-fonte deve ser transformado em instruções legíveis por máquina antes da execução. Uma linguagem interpretada, pelo contrário, não compila o código-fonte na linguagem de máquina antes de executar o programa. Simplesmente interpreta o código rapidamente. Linguagens interpretadas requerem um software chamado intérprete, que pega o código fonte e executa uma instrução por vez.
- Com linguagens compiladas, há pelo menos duas etapas para passar do código fonte para a execução, enquanto nas linguagens interpretadas, há apenas uma - execução. Um programa escrito em uma linguagem interpretada não é compilado - é interpretado por outro programa enquanto é executado. Um programa escrito em uma linguagem compilada passa por um processo para alterá-lo de seu formato de texto legível por humanos para um formato legível por máquina. Um programa chamado compilador faz essa transição.
- Os programas compilados são executados mais rapidamente que os programas interpretados, mas os programas interpretados podem ser modificados enquanto o programa estiver em execução. Isso torna os programas interpretados ideais para escrever software de performance ao vivo. Trabalhar com linguagens compiladas pode ser bom porque muitos erros são encontrados quando o código-fonte é compilado. Esses erros, chamados erros de compilação, impedem a compilação do código. Pelo contrário, linguagens interpretadas não são compiladas, portanto você não obtém os benefícios ou as desvantagens dos erros de compilação.
- Com idiomas interpretados, toda a depuração ocorre em tempo de execução. Não há etapa de compilação durante a qual você pode eliminar todos os erros de sintaxe no seu código; em vez disso, você deve executar o programa para encontrar erros. Isso se torna um problema quando o programa interpretado modifica os arquivos ou faz alterações nos recursos permanentes. Isso dificulta a detecção de alguns bugs, porque o código não precisa ser compilado. Os idiomas interpretados também apresentam algumas preocupações de segurança no ambiente online, pois códigos maliciosos podem ser injetados no meio da execução.
Em poucas palavras, as linguagens compiladas e interpretadas têm seus pontos fortes. Alguns idiomas exigem que todo o seu código seja compilado antes que qualquer código possa ser executado. Outros idiomas interpretam cada instrução no momento em que o código é executado. A principal diferença entre os dois é que existem pelo menos duas etapas para passar do código fonte à execução com linguagens compiladas. No entanto, com linguagens interpretadas, há apenas uma etapa - a execução. Os programas compilados são executados mais rapidamente que os programas interpretados, mas os programas interpretados podem ser modificados enquanto o programa está sendo executado..