Leia o texto a seguir:
“Algumas vezes, um implementador pode fornecer tanto implementações compiladas quanto interpretadas para uma linguagem. Nesses casos, o interpretador é usado para desenvolver e depurar programas. Então, após um estado (relativamente) livre de erros ser alcançado, os programas são compilados para aumentar sua velocidade de execução.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Considerando o trecho acima, avalie as asserções abaixo e a relação proposta entre elas.
I. É mais rápido testar programas em fase de desenvolvimento se eles forem compilados.
PORQUE
II. Programas compilados passam por uma série de otimizações e executam em binário nativo.
Assinale a alternativa com a relação correta entre as asserções I e II:
Grupo de escolhas da pergunta
A asserção I é falsa e a asserção II é verdadeira.
As asserções I e II são falsas.
A asserção I é verdadeira e a asserção II é falsa.
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
Soluções para a tarefa
Resposta:
I é falsa e II é verdadeira
Explicação:
A asserção I é falsa, pois os durante a etapa de desenvolvimento, frequentemente precisamos validar modificações pontuais. Em linguagens compiladas, ao realizar uma modificação pontual é necessário recompilar o programa inteiro, ou ao menos um módulo. Isso faz com que o processo de desenvolvimento se torne bastante lento, visto que o processo de compilação consome tempo. Por isso algumas linguagens oferecem o recurso descrito no texto: o programador pode realizar diversos testes pontuais sem precisar recompilar o programa, e uma vez que esteja satisfeito com o resultado, pode compila-lo uma única vez, gerando um binário otimizado para ser disponibilizado para os usuários.
A asserção II é verdadeira, pois os programas compilados, de fato, passam por otimizações (em vários níveis diferentes) que melhoram seu desempenho. Além disso, executar diretamente em linguagem nativa de máquina tende a tornar os programas mais rápidos do que processos de interpretação.