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…