Interpretadores, runtimes e máquinas virtuais
Objetivo
Compreender execução mediada por runtime e evitar a falsa ideia de que linguagens “interpretadas” são simplesmente lidas linha por linha.
Conceitos essenciais
Interpretador
Executa ou coordena a execução de uma representação do programa sem exigir necessariamente um executável nativo separado produzido antecipadamente pelo usuário.
Runtime
Fornece serviços como tipos, memória, exceptions, módulos, I/O e execução de representações intermediárias, conforme a tecnologia.
Python
CPython normalmente compila fonte para uma forma de bytecode interno e executa essa representação em sua máquina de execução. O arquivo .py não é instrução nativa direta da CPU.
PHP
O Zend Engine analisa/compila o fonte para opcodes internos e os executa; chamar PHP de apenas “linha por linha” seria simplificação inadequada.
Máquina virtual
Ambientes como JVM e CLR executam representações intermediárias e podem aplicar JIT/AOT, garbage collection e outros serviços.
Modelo mental
SOURCE → IMPLEMENTAÇÃO/RUNTIME → REPRESENTAÇÃO INTERNA → EXECUÇÃO → CPUExemplo e demonstração
Java é um exemplo conhecido de compilação para bytecode da JVM.
Fonte .java → javac → .class/bytecode → JVM → execuçãoExperimento / prática
- Explique por que python programa.py ainda envolve código de máquina em algum nível.
- Diferencie linguagem Python e implementação CPython.
Erros comuns
- Python é executado diretamente pela CPU.
- Runtime significa apenas “tempo que o programa demorou”.
Resumo
Ao concluir esta aula, revise o modelo mental e tente explicá-lo com suas próprias palavras antes de avançar.