Questão FC373207
Em relação aos fundamentos das linguagens de programação, é correto afirmar:
Linguagens de Programação
FCC · 2022
Em relação aos fundamentos das linguagens de programação, é correto afirmar:
- Um dos desafios da tradução de programas escritos em linguagens de alto nível para programas em linguagem assembler é minimizar a quantidade de variáveis mapeadas em registradores e, com isso, melhorar o desempenho do programa. Os compiladores são capazes de fazer esta tarefa muito bem, porém o resultado final depende muito da quantidade de registradores que estão disponíveis na arquitetura alvo.
- Cada vez é mais incomum encontrar programas úteis que usam poucas variáveis. Quando ocorre uma atribuição a alguma variável de um programa de alto nível, esta atribuição é mapeada para o endereço da variável correspondente. Porém, como o acesso à memória é mais rápido do que o acesso a registradores, é mais eficiente mapear as variáveis em endereços de memória ROM.
- Uma solução frequente para melhorar o desempenho dos processadores é anexar uma memória super rápida, próximo da CPU − a memória cache, cuja divisão em níveis torna a busca de informações do processador mais otimizada. Mas, como são muito mais caras, as memórias cache são normalmente pequenas.
- Em um comando de repetição como “while (i<10)”, o laço deve ser interrompido quando a condição do laço for falsa. Em assembler, a instrução de desvio apropriada é algo como "desvie se i>10", ou seja, desvie se a expressão (i<=10) for falsa.
- As linguagens de programação têm pelo menos dois tipos de comandos condicionais: if-then e if-then-else. Se a expressão testada for verdadeira, a sequência de comandos contida nos comandos assembler relativos ao “then” deve ser executada e, se for falsa, a sequência de comandos do “else” deve ser executada. Em situações particulares, os comandos do “then” e do “else” são executados consecutivamente.
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
A afirmação descreve corretamente a estratégia de acelerar o processamento com a adição de uma memória cache muito rápida colocada próxima ao CPU. Essa cache é tipicamente organizada em níveis (L1, L2, L3), onde cada nível equilibra velocidade, tamanho e latência.
O esquema em níveis torna a busca de dados mais eficiente: o nível mais próximo é o mais rápido e menor, servindo hits imediatos; os níveis subsequentes são maiores e um pouco mais lentos, reduzindo a penalidade quando há miss no nível anterior.
O motivo de as caches serem pequenas e caras é técnico: caches usam memória do tipo SRAM, que é muito mais rápida que DRAM, porém ocupa mais área e custa muito mais por byte. Assim, o projeto prioriza capacidade limitada para garantir alta velocidade.
Por fim, a eficácia da cache baseia‑se na localidade temporal e espacial dos programas, o que explica por que mesmo caches pequenas proporcionam grande ganho de desempenho.
Conteúdo do catálogo FC Concursos · Atualizado em