freeCodeCamp/guide/portuguese/computer-science/compiled-versus-interpreted.../index.md

68 lines
5.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

---
title: Compiled Versus Interpreted Languages
localeTitle: Idiomas Compilados versus Interpretados
---
## Idiomas Compilados versus Interpretados
Cada programa é um conjunto de instruções, seja para adicionar dois números ou enviar uma solicitação pela Internet. Compiladores e intérpretes pegam código legível e o convertem em código de máquina legível por computador. Em uma linguagem compilada, a máquina de destino traduz diretamente o programa. Em uma linguagem interpretada, o código-fonte não é traduzido diretamente pela máquina de destino. Em vez disso, um programa _diferente_ , também conhecido como interpretador, lê e executa o código.
### Tudo bem ... mas o que isso _realmente_ significa?
Então, digamos que você tenha uma receita de homus que você quer fazer, mas é no grego antigo. Há duas maneiras pelas quais você, como um falante de grego antigo, pode seguir suas instruções.
A primeira é se alguém já a traduziu para o inglês para você. Você (e qualquer um que falasse inglês) poderia obter a versão em inglês e fazer homus. Esta é a versão compilada.
A segunda é se você tivesse um amigo que conhecesse o grego antigo. Seu amigo pode se sentar ao seu lado e traduzir o grego antigo para o inglês, linha por linha, à medida que você vai. Neste caso, seu amigo é o intérprete. Esta é a versão interpretada.
### Idiomas compilados
As linguagens compiladas são convertidas diretamente em código de máquina que o processador pode executar. Como resultado, elas tendem a ser mais rápidas e mais eficientes de executar do que as linguagens interpretadas. Eles também dão ao desenvolvedor mais controle sobre aspectos de hardware, como gerenciamento de memória e uso da CPU.
As linguagens compiladas precisam de uma etapa de "compilação" - elas precisam ser compiladas manualmente primeiro. Você precisa "reconstruir" o programa toda vez que precisar fazer uma alteração. No nosso exemplo hummus, toda a tradução é escrita antes de chegar a você. Se o autor original decidiu que queria usar um tipo diferente de azeite, toda a receita precisaria ser traduzida novamente e depois enviada para você.
Exemplos de linguagens compiladas são C, C ++, Erlang, Haskell, Rust e Go.
### Idiomas Interpretados
Os intérpretes executarão um programa linha por linha e executarão cada comando. Agora, se o autor decidisse usar um tipo diferente de azeite, ele poderia riscar o antigo e adicionar o novo. Seu amigo tradutor pode então transmitir essa mudança para você como isso acontece.
Idiomas interpretados já foram conhecidos por serem significativamente mais lentos do que os idiomas compilados. Mas, com o desenvolvimento da [compilação just-in-time](https://guide.freecodecamp.org/computer-science/just-in-time-compilation) , essa lacuna está diminuindo.
Exemplos de linguagens interpretadas comuns são PHP, Ruby, Python e JavaScript.
### Uma pequena advertência
A maioria das linguagens de programação pode ter implementações compiladas e interpretadas. A linguagem em si não é necessariamente compilada ou interpretada. No entanto, para simplificar, eles são geralmente referidos como tal.
Estritamente falando, os termos linguagem interpretada e linguagem compilada não são bem definidos porque, em teoria, qualquer linguagem de programação pode ser interpretada ou compilada. Na moderna implementação de linguagem de programação, é cada vez mais popular que uma plataforma forneça as duas opções. Por exemplo, o Python pode ser executado como um programa compilado ou como uma linguagem interpretada no modo interativo.
**A maioria das ferramentas de linha de comando, CLIs e shells podem, teoricamente, ser classificadas como linguagens interpretadas.**
### Vantagens e desvantagens
#### Vantagens de linguagens compiladas
Programas compilados em código nativo em tempo de compilação geralmente tendem a ser mais rápidos do que os traduzidos em tempo de execução, devido à sobrecarga do processo de tradução.
#### Desvantagens de linguagens compiladas
As desvantagens mais notáveis são: -
* Tempo adicional necessário para concluir toda a etapa de compilação antes do teste e
* Dependência de plataforma do código binário gerado.
#### Vantagens dos Idiomas Interpretados
Uma linguagem interpretada fornece implementações alguma flexibilidade adicional sobre implementações compiladas. Como os intérpretes executam o código do programa de origem, o próprio código é independente da plataforma (código de byte do Java, por exemplo). Outros recursos incluem digitação dinâmica e tamanho de programa executável menor.
#### Desvantagens dos Idiomas Interpretados
A desvantagem mais notável é a velocidade de execução típica em comparação com as linguagens compiladas.
#### Mais Informações:
[Wikipedia - Linguagem compilada](https://en.wikipedia.org/wiki/Compiled_language)
[Wikipedia - Linguagem interpretada](https://en.wikipedia.org/wiki/Interpreted_language)
[Artigo: programmerinterview.com - Qual é a diferença entre uma linguagem compilada e interpretada?](http://www.programmerinterview.com/index.php/general-miscellaneous/whats-the-difference-between-a-compiled-and-an-interpreted-language/)