Geral
Compiladores
Semana 7
0

Questão

Você está trabalhando em um compilador e deseja aplicar a otimização “Reordenação de Instruções” para melhorar o desempenho de um código intermediário. Qual é o principal objetivo dessa otimização e como você aplicaria a técnica a ao código intermediário abaixo? 

 1. a = 5
 2. b = a * 2
 3. c = 3 + b
 4. d = a – 1
 

A)

O objetivo é melhorar a legibilidade do código intermediário, e a técnica pode ser aplicada reorganizando as instruções na seguinte ordem: 4, 3, 2, 1. 

B)

O objetivo é reduzir a complexidade das expressões no código intermediário, e a técnica pode ser aplicada removendo a instrução 3. 

C)

O objetivo é reduzir a quantidade de código gerado, eliminando instruções desnecessárias, e a técnica pode ser aplicada removendo a instrução 4. 

D)

O objetivo é converter o código intermediário em código de máquina, e a técnica pode ser aplicada removendo todas as variáveis. 

E)

O objetivo é melhorar o desempenho do programa, reordenando as instruções de forma a explorar paralelismo e minimizar saltos condicionais, e a técnica pode ser aplicada mantendo a ordem atual das instruções.

function vote(questaoId, value) { window.location.href = "/accounts/login/?next=/questao/3769/"; return; fetch(`/vote/questao/${questaoId}/`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': 'YzaWDaqsRc00bopGoEI4MUAflkf88iHVDtP0sjxXXDiy2A96N9HUPk60kOtPtFDF' }, body: JSON.stringify({ value: value }) }) .then(response => response.json()) .then(data => { if (data.success) { document.getElementById(`score-${questaoId}`).textContent = data.score; const upBtn = document.querySelector(`button[onclick="vote(${questaoId}, 1)"]`); const downBtn = document.querySelector(`button[onclick="vote(${questaoId}, -1)"]`); upBtn.classList.remove('active-up'); downBtn.classList.remove('active-down'); if (data.user_vote === 1) upBtn.classList.add('active-up'); if (data.user_vote === -1) downBtn.classList.add('active-down'); } }); }