O método de tradução das linguagens de programação é um aspecto importante a se considerar em projetos de software. Considerando que a forma pela qual o código em linguagem de alto nível é convertido para linguagem de máquina pode ser determinante para a escolha da linguagem, assinale a afirmativa correta.
- A)A compilação faz a tradução das instruções do programa em tempo de execução.
Errada, porque a compilação ocorre antes da execução, enquanto a tradução em tempo de execução é típica da interpretação ou de abordagens just-in-time.
- B)A interpretação traduz todo o código-fonte de alto nível, de uma só vez, em um código de máquina.
Errada, porque isso descreve compilação, não interpretação, já que a interpretação processa o código aos poucos, durante a execução.
- C)O método de tradução híbrido realiza uma compilação do código-fonte de alto nível para um código de intermediário, que, posteriormente, será traduzido por um interpretador.
Certa, porque o método híbrido compila o código-fonte para um código intermediário e depois esse código é interpretado ou executado em uma máquina virtual.
- D)A compilação oferece mais portabilidade para as aplicações do que a interpretação, pois um código compilado pode ser executado em qualquer sistema operacional e arquitetura computacional.
Errada, porque código compilado não é automaticamente portátil entre diferentes sistemas operacionais e arquiteturas sem adaptações ou recompilação.
Gabarito: C
Quando você estuda tradução de linguagens, o ponto central é entender como o código fonte vira algo que a máquina consiga executar. Em linhas gerais, a compilação transforma o programa antes da execução, gerando um executável ou um código intermediário. Já a interpretação vai lendo e executando instrução por instrução, sem produzir necessariamente um arquivo final separado. A banca aqui explorou o modelo híbrido, que é muito comum em linguagens modernas. Nesse modelo, o código fonte é primeiro compilado para um código intermediário, e depois esse resultado é executado por um interpretador ou máquina virtual. É exatamente a lógica de várias linguagens atuais, que buscam equilibrar desempenho e portabilidade. Por isso a alternativa C está correta: ela descreve a sequência compilação para código intermediário e posterior interpretação. Essa ideia aparece em doutrina clássica de engenharia de software e de compiladores, embora não dependa de lei ou jurisprudência, porque é conteúdo técnico de linguagem de programação. As demais alternativas escorregam em conceitos básicos: compilação não acontece em tempo de execução, interpretação não traduz tudo de uma vez, e compilação pura não garante execução em qualquer sistema. A banca gosta desse tipo de troca de definições, então vale decorar o trio: compila antes, interpreta durante, híbrido faz os dois em etapas.