Linhas de código percorriam as telas dos participantes durante uma maratona de desenvolvimento, enquanto vozes…
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
Linhas de código percorriam as telas dos participantes durante uma maratona de desenvolvimento, enquanto vozes trocavam ideias: “E se criarmos um utilitário para gerar automaticamente funções de validação a partir de um modelo de regras?” “Assim, não precisaríamos escrever manualmente cada verificador; bastaria mudar o modelo de entrada.” No fim, a equipe entregou um programa que recebe um arquivo de configuração com definições de campos e produz, como saída, um módulo completo de código-fonte contendo todas as funções de validação específicas. Analise o texto e, com base no conceito de metaprogramação, identifique a abordagem empregada pela equipe para generalizar a construção das funções de validação.
- A) Gerar código-fonte usando um programa que recebe regras como entrada
- B) Executar testes automatizados para verificar se as funções funcionam conforme o esperado
- C) Utilizar bibliotecas externas para simplificar a escrita manual de funções de validação
- D) Configurar um interpretador para executar regras em tempo de execução sem criar novos arquivos
- E) Escrever manualmente cada função de validação a partir do modelo de entrada
✅ Resposta correta: alternativa A
Resolução passo a passo
- O texto descreve um utilitário que recebe um arquivo de configuração com definições de campos e produz como saída um módulo completo de código-fonte com as funções de validação. Ou seja, o programa escreve código, e não apenas executa regras.
- Metaprogramação é a técnica em que um programa manipula ou gera outros programas (código) como dados. Aqui, o gerador é o metaprograma, e as funções de validação finais são o produto dele.
- A alternativa A descreve exatamente isso: gerar código-fonte usando um programa que recebe regras como entrada. Por isso ela é a resposta correta.
- A alternativa B está errada porque testes automatizados verificam o comportamento do código, mas não generalizam sua construção.
- A alternativa C está errada porque o texto não menciona bibliotecas externas; a solução é um utilitário próprio da equipe.
- A alternativa D está errada porque o texto fala de gerar um módulo completo de código-fonte em arquivo, e não de interpretar regras em tempo de execução sem criar arquivos.
- A alternativa E está errada porque é justamente o oposto do que a equipe fez: a ideia central é evitar escrever manualmente cada verificador.
- Conclusão: o gabarito oficial (A) está correto e coincide com a resolução feita de forma independente.
💡 Dica: Identifique a técnica de metaprogramação descrita no texto.
Alternativa por alternativa
Caracteriza metaprogramação: um algoritmo produz outro algoritmo baseado em configurações.
O aluno associa a ideia de 'garantir que as funções funcionam' ao conceito de generalização da construção, confundindo verificação de comportamento com geração de código.
Por que engana: Confundir geração automática de código com execução de testes ou uso manual de funções.
O aluno supõe que qualquer ferramenta que facilite o trabalho manual seja uma biblioteca externa, sem notar que o texto descreve um utilitário criado pela própria equipe.
O aluno entende que 'regras como entrada' sempre significa interpretação em tempo de execução, ignorando que o texto fala explicitamente em produzir um módulo de código-fonte.
O aluno lê a frase 'não precisaríamos escrever manualmente cada verificador' de forma invertida, achando que a abordagem adotada foi escrever manualmente a partir do modelo.
Raio-X da questão
metaprogramação e geração de código
avaliacao
conceito de metaprogramação · geração automática de código
Estude o conceito de metaprogramação e geração automática de código a partir de regras.
Confundir geração automática de código com execução de testes ou uso manual de funções.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Por que certas ferramentas de desenvolvimento conseguem gerar trechos de código automaticamente, adaptando-se a…
- Quando comecei a desenvolver uma ferramenta para automatizar a geração de relatórios, implementei um programa que lê…
- Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de atendimento. Para…
- Em levantamento interno recente, 85% dos desenvolvedores de uma empresa de software relatou gasto excessivo de horas…
- Narrativa em primeira pessoa: trabalhei em um projeto interno de automação de APIs que visava reduzir o tempo de…
- Vislumbres do backend de uma plataforma de desenvolvimento revelam uma equipe que adotou o AutoDev, uma ferramenta capaz…
🔎 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
