📌 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.
🧠 Duas formas de realizar essa tradução
1. 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
2. Compilação (Tradução antecipada)
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 dividido em etapas
- análise léxica, sintática, semântica,
- otimização
- geração de código
🎯 Por que isso importa?
A diferença entre interpretar e compilar define:
- 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ência
Baseado em Structured Computer Organization, Andrew Tanenbaum.
Top comments (0)