Chamou minha atenção que mesmo Python que é usualmente interpretada e/ou usa JIT Compilation, também pode ser compilada, é isso mesmo?
Chamou minha atenção que mesmo Python que é usualmente interpretada e/ou usa JIT Compilation, também pode ser compilada, é isso mesmo?
Olá, Daniel. Tudo bem?
No Python, a compilação é um processo intermediário. O código escrito em Python é compilado para um Bytecode, que é uma representação mais baixo nível, menos compreensível por humanos, que será lido pelo interpretador. Ela é considerada interpretada porque o código gerado após a compilação não é código de máquina, mas sim um código intermediário, então não pode ser executado diretamente pela máquina, mas sim pelo interpretador.
Espero ter ajudado.
Oi, Daniel!
Isso! Como Python é só uma linguagem, usualmente isso não interfere na sua implementação de fato. Entretanto, a linguagem Python foi realmente construída para ser interpretada e é normalmente executada da forma que o Vitor comentou.
Mesmo assim, existem implementações que compilam Python pra binário. O único que testei foi o Nuitka, esse artigo ou esse vídeo podem explicar mais sobre.
Aqui, fiz um teste simples instalando o nuitka, compilando um pequeno código test.py
e executando o binário resultante na pasta test.dist
(exemplo em linux):
pip install nuitka
python3 -m nuitka --standalone test.py
./test.dist/test
Assim, esse programa de fato transforma o código python em um binário executável. Não testei com programas mais complexos para analisar o comportamento, mas pareceu interessante.
Abraços!