Geral
Compiladores
Semana 7
0

Questão

Ao lidar com o desenvolvimento de um compilador, o programador quer aplicar a otimização “Eliminação de Código Morto” em um código intermediário. Qual é o principal objetivo dessa otimização e como o programador aplicaria a técnica ao código intermediário abaixo? 

 1.  x = 5
 2.  y = x + 3
 3.  z = 2 * y
 4.  w = z - 5
 5.  v = z * 2 

A)

O objetivo é melhorar a legibilidade do código intermediário e a técnica pode ser aplicada removendo todas as instruções. 

B)

O objetivo é reduzir a complexidade das expressões no código intermediário e a técnica pode ser aplicada removendo todas as operações de adição e multiplicação. 

C)

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. 

D)

O objetivo é identificar e remover variáveis temporárias desnecessárias, e a técnica pode ser aplicada removendo as variáveis y e z. 

E)

O objetivo é reduzir a quantidade de código gerado, eliminando instruções que não afetam o resultado do programa, e a técnica pode ser aplicada removendo as instruções 3 e 5. 

function vote(questaoId, value) { window.location.href = "/accounts/login/?next=/questao/441/"; return; fetch(`/vote/questao/${questaoId}/`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': 'XqiXeejjeiJqoRNEzeOqnsjrTviEYSFephndmNiYGN7ESYMbrNIDxO0yb9LDKQoz' }, 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'); } }); }