Como o software é executado no computador
Source: Dev.to
Ideia Principal
Computadores só executam um conjunto limitado de instruções simples (linguagem de máquina). Para permitir que humanos escrevam software de forma produtiva, usamos mecanismos que traduzem linguagens de alto nível para esse conjunto limitado.
Interpretação
Um interpretador lê o código‑fonte e o executa diretamente, traduzindo instruções durante a execução.
Características‑chave
- Execução mais lenta (tradução em tempo real)
- Maior portabilidade
- Facilidade de depuração
- Menor necessidade de geração de binário
Compilação
Um compilador traduz o código‑fonte antes da execução, gerando um binário contendo apenas instruções que o hardware entende.
Características‑chave
- Execução mais rápida
- Melhor otimização
- Dependente da arquitetura‑alvo
Processo de compilação
- Análise léxica
- Análise sintática
- Análise semântica
- Otimização
- Geração de código
Diferenças entre interpretar e compilar
- Performance
- Portabilidade
- Experiência de desenvolvimento
- Design de linguagens de programação
- Estrutura de sistemas (ex.: JVM, V8, LLVM)
Esses mecanismos são a base para entender como linguagens funcionam “under the hood”.
Referências
- Structured Computer Organization, Andrew Tanenbaum.