Ao escrever programas, o desenvolvedor pode optar por linguagens que utilizam diferentes formas de execução. Algumas linguagens transformam o código inteiro em linguagem de máquina antes da execução, enquanto outras traduzem o programa linha a linha durante sua execução. Essa diferença impacta diretamente o desempenho do software, o tempo de resposta e até mesmo a forma como erros são tratados (Manzano; Oliveira, 2016). Essa discussão é central em disciplinas de algoritmos e programação, já que entender os mecanismos de execução ajuda o programador a escolher a ferramenta mais adequada para o contexto em que está trabalhando. Com base nas informações apresentadas, avalie as asserções a seguir e a relação proposta entre elas. I. Programas compilados costumam ser mais rápidos que programas interpretados. PORQUE II. Na compilação, o código é traduzido previamente para linguagem de máquina, enquanto na interpretação a tradução é feita instrução por instrução em tempo real. Assina a alternativa correta.
Questão
Ao escrever programas, o desenvolvedor pode optar por linguagens que utilizam diferentes formas de execução. Algumas linguagens transformam o código inteiro em linguagem de máquina antes da execução, enquanto outras traduzem o programa linha a linha durante sua execução. Essa diferença impacta diretamente o desempenho do software, o tempo de resposta e até mesmo a forma como erros são tratados (Manzano; Oliveira, 2016). Essa discussão é central em disciplinas de algoritmos e programação, já que entender os mecanismos de execução ajuda o programador a escolher a ferramenta mais adequada para o contexto em que está trabalhando.
Com base nas informações apresentadas, avalie as asserções a seguir e a relação proposta entre elas.
I. Programas compilados costumam ser mais rápidos que programas interpretados.
PORQUE
II. Na compilação, o código é traduzido previamente para linguagem de máquina, enquanto na interpretação a tradução é feita instrução por instrução em tempo real.
Assina a alternativa correta.
Alternativas
a) Asserções I e II são verdadeiras, e a II justifica a I.
b) Asserções I e II são verdadeiras, mas a II não justifica a I.
c) A I é verdadeira, e a II é falsa.
d) A I é falsa, e a II é verdadeira.
e) Ambas são falsas.
Explicação
Passo 1 — Analisar a asserção I I. “Programas compilados costumam ser mais rápidos que programas interpretados.” Em geral, isso é verdadeiro: quando o código é compilado, ele tende a executar com menos sobrecarga durante a execução, pois já está em forma diretamente executável (código de máquina), o que normalmente resulta em maior desempenho.
Passo 2 — Analisar a asserção II II. “Na compilação, o código é traduzido previamente para linguagem de máquina, enquanto na interpretação a tradução é feita instrução por instrução em tempo real.” Isso também é verdadeiro:
- Compilação: ocorre antes da execução, gerando um executável (ou equivalente) em linguagem de máquina.
- Interpretação: ocorre durante a execução, traduzindo/compreendendo instruções em tempo de execução (muitas vezes passo a passo), o que adiciona custo (overhead).
Passo 3 — Verificar a relação de justificativa (II justifica I?) A II justifica a I, pois o fato de a tradução já ter sido feita previamente na compilação reduz o trabalho necessário durante a execução, enquanto a interpretação realiza essa tradução “em tempo real”, o que tende a tornar a execução mais lenta.
Alternativa correta: (a).