Explique como a escolha entre tipos de dados imutáveis e mutáveis afeta efeitos colaterais em um algoritmo que…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Explique como a escolha entre tipos de dados imutáveis e mutáveis afeta efeitos colaterais em um algoritmo que atualiza uma agenda compartilhada entre várias threads; forneça pseudocódigo que minimize efeitos colaterais usando tipos imutáveis e explique a estratégia.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
1) Conceito e impacto: - Tipos mutáveis (por exemplo, lista) permitem que várias partes do programa alterem o mesmo objeto, causando efeitos colaterais e condições de corrida em ambientes concorrentes. - Tipos imutáveis (por exemplo, tupla, registro imutável) não podem ser alterados depois de criados; atualizações criam novos valores, evitando alterações inesperadas e facilitando raciocínio sobre o estado. 2) Estratégia para minimizar efeitos colaterais: - Representar a agenda como uma sequência imutável de compromissos. Em vez de modificar a estrutura, criar e devolver uma nova versão atualizada. - Usar sincronização leve (fila de mensagens ou bloqueio) apenas ao trocar referências imutáveis entre threads. 3) Pseudocódigo (estilo funcional/imperativo misto): fun atualizar_agenda(agenda_imutavel, novo_compromisso): // agenda_imutavel é uma lista imutável (por exemplo, tupla) if conflito(novo_compromisso, agenda_imutavel): return agenda_imutavel // não altera estado novo_lista = concatenar(agenda_imutavel, (novo_compromisso,)) return novo_lista // thread principal mantém referência atualizada de forma segura // troca de referência via mecanismo atômico/fila de mensagens // vantagem: cada atualização gera novo objeto; leitores antigos seguem consistentes 4) Justificativa final: - Usar imutabilidade reduz efeitos colaterais porque não há modificação in-place; facilita testes e evita bugs de concorrência. Quando desempenho ou memória forem críticos, combinar imutabilidade com estratégias de compartilhamento estrutural ou bloqueios bem definidos.
Explicação
A explicação aborda como a escolha entre tipos de dados imutáveis e mutáveis impacta a concorrência, destacando que tipos imutáveis evitam efeitos colaterais indesejados. A estratégia apresentada, que utiliza uma abordagem funcional para atualizar a agenda, minimiza a possibilidade de conflitos entre threads. Além disso, a justificativa final enfatiza os benefícios da imutabilidade em termos de segurança e facilidade de manutenção do código.
Raio-X da questão
tipos de dados imutáveis
avaliacao
tipos de dados em programação · concorrência em algoritmos
Revisar conceitos de programação concorrente e tipos de dados em algoritmos.
O aluno pode confundir a utilização de tipos mutáveis e imutáveis, não percebendo como isso impacta a segurança e a integridade dos dados em um ambiente concorrente.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Para tornar um algoritmo reutilizável e seguro para execução paralela, qual prática relacionada a variáveis e efeitos…
- Ao decompor um algoritmo que atualiza a mesma variável de estado em várias subtarefas, que estratégia reduz efeitos…
- Uma equipe dividiu um programa em várias threads para executar tarefas ao mesmo tempo. Durante os testes, duas threads…
- Em um algoritmo paralelo que atualiza contadores por turma, qual prática reduz a necessidade de locks ao manipular uma…
- Ao generalizar um algoritmo que processa uma coleção e acumula resultados, qual prática relativa à variável acumuladora…
- Em um algoritmo de agendamento com variáveis globais, ao aplicar decomposição para reduzir acoplamento entre módulos…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
