Linguagem Interpretada vs Linguagem Compilada
Quando escrevemos um programa, o computador não entende diretamente o código que digitamos, ele entende apenas instruções em linguagem de máquina (0's e 1's). Para fazer essa tradução, existem duas abordagens principais, compilação e interpretação.
Linguagem Compilada
Em uma linguagem compilada, o código é traduzido inteiramente antes de ser executado. Esse processo é feito por um compilador, que gera um arquivo executável. A partir daí, o programa roda diretamente na máquina, sem precisar de nenhuma tradução adicional.
No caso do C++, o compilador que usamos é o g++. Quando rodamos o comando:
g++ hello.cpp -o hello -std=c++17 -O2 -Wall
O g++ lê o arquivo hello.cpp, traduz tudo para linguagem de máquina e gera um executável hello. A partir daí, o executável ./hello rodará sem problemas.
Exemplos de linguagens compiladas são C, C++, Rust…
Linguagem Interpretada
Em uma linguagem interpretada, o código é traduzido e executado linha por linha, por um interpretador. Não existe uma etapa separada, o interpretador lê e executa o código diretamente.
Um exemplo familiar é o Python: ao rodar python hello.py, o interpretador vai lendo e executando o arquivo linha por linha, sem gerar nenhum executável.
Exemplos de linguagens interpretadas: Python, JavaScript, Ruby.
Comparação
| Compilada | Interpretada | |
|---|---|---|
| Tradução | Antes da execução | Durante a execução |
| Velocidade | Mais rápida | Mais lenta |
| Erros | Detectados na compilação | Detectados em tempo de execução |
| Exemplos | C, C++, Rust… | Python, JavaScript, Ruby… |
