Narrativa em primeira pessoa: trabalhei em um projeto interno de automação de APIs que visava reduzir o tempo…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Reconhecer o conceito de metaprogramação como uma forma de generalização na construção de programas, permitindo que algoritmos sejam entrada ou saída para outros algoritmos.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Narrativa em primeira pessoa: trabalhei em um projeto interno de automação de APIs que visava reduzir o tempo de desenvolvimento de funções de conversão de objetos para JSON. No início, escrevíamos manualmente cada função de serialização para diversas classes. Depois, criamos um módulo que recebia como entrada a descrição dos atributos de cada classe e gerava automaticamente o código-fonte dessas funções, além de produzir fábricas de deserialização que interpretam JSON e instanciam objetos correspondentes. Com base no texto, identifique a prática que exemplifica o uso de metaprogramação para generalizar a construção de programas.
- A) Utilizar funções de ordem superior para iterar sobre atributos de um objeto e montar JSON
- B) Criar um programa que receba descrições de classes e gere automaticamente funções de serialização
- C) Aplicar funções puras para transformar valores de objetos em pares chave-valor genéricos
- D) Usar laços de repetição para concatenar manualmente cada campo de um objeto em uma string JSON
- E) Empregar bibliotecas externas para registrar tipos de dados em tempo de execução
✅ Resposta correta: alternativa B
Resolução passo a passo
- A questão pede a prática que exemplifica metaprogramação, ou seja, um programa que produz ou manipula outros programas, generalizando a construção de código. Passo 2: No texto, a equipe criou um módulo que recebe a descrição dos atributos de cada classe e gera automaticamente o código-fonte das funções de serialização. Isso é metaprogramação, pois o programa escreve código de outros programas a partir de uma descrição. Passo 3: A alternativa B descreve exatamente essa prática: um programa que recebe descrições de classes e gera automaticamente funções de serialização. Passo 4: A alternativa A está errada porque funções de ordem superior apenas iteram e transformam dados em tempo de execução, sem gerar código novo. Passo 5: A alternativa C está errada porque funções puras são um conceito de programação funcional sobre transformação de valores, não geração de código. Passo 6: A alternativa D está errada porque concatenar campos manualmente é justamente o método antigo, não generalizado, descrito no início do texto. Passo 7: A alternativa E está errada porque registrar tipos em tempo de execução usa bibliotecas para reflexão, mas não descreve a geração automática de código que o texto apresenta. Passo 8: Conclusão: o gabarito oficial B está correto e coincide com a análise feita.
💡 Dica: Identifique a prática que automatiza a geração de código a partir de descrições de classes.
Alternativa por alternativa
O aluno associa generalização apenas ao uso de funções de ordem superior para percorrer atributos, sem perceber que o texto descreve a geração de código-fonte novo.
Por que engana: Confundir automação de código com manipulação manual ou uso de funções puras sem geração automática.
Geração de código a partir de especificações caracteriza metaprogramação, pois algoritmos produzem outros algoritmos.
O aluno confunde metaprogramação com programação funcional, supondo que funções puras que transformam valores já generalizam a construção de programas.
O aluno interpreta a narrativa como descrição da solução e não percebe que a concatenação manual é justamente o método antigo que o projeto substituiu.
O aluno acredita que qualquer uso de registro dinâmico de tipos em tempo de execução seja metaprogramação, sem notar que o texto destaca a geração automática de código.
Raio-X da questão
metaprogramação e automação de código
avaliacao
programação orientada a objetos · funções de ordem superior
Estude metaprogramação e geração automática de código em programação.
Confundir automação de código com manipulação manual ou uso de funções puras sem geração automática.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Durante uma campanha de arrecadação, uma escola receberá alimentos e produtos de higiene para montar cestas destinadas a…
- Em um exercício de preparação para períodos de chuva intensa, uma central municipal de Defesa Civil precisa localizar…
- Em ações de fiscalização ambiental no Brasil, imagens de satélite podem ser comparadas em diferentes datas para indicar…
- Uma família criou um programa para organizar as compras do mês. O programa recebe os preços, soma os produtos e…
- — Sem conexão estável no rio, o alerta precisa aparecer no próprio tablet — afirmou a técnica que acompanha sons de aves…
- Falhas em formulários digitais de serviços públicos levaram um setor de tecnologia a testar cinco programas de análise…
🔎 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
