GeraProva GeraProva Provas com IA para professores do Brasil
Computação2ª sérieBNCC EM13CO04Difícil⏱ medio

Como equipes de desenvolvimento conseguem gerar módulos de software sem escrevê-los manualmente? Num projeto…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EM13CO04

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

Como equipes de desenvolvimento conseguem gerar módulos de software sem escrevê-los manualmente? Num projeto ágil, uma equipe criou um script que lê um arquivo de especificação em JSON e produz automaticamente estruturas de diretórios, classes e funções correspondentes. Esse processo reduziu o tempo de criação de novos recursos e padronizou a arquitetura do sistema. Para integração contínua, mantêm também scripts que executam testes automatizados e ferramentas que inspecionam o código em busca de padrões. Identifique qual exemplo caracteriza metaprogramação, conforme descrito no texto-base.

  1. A) Uso de função de ordem superior para tratar dados de forma abstrata
  2. B) Aplicação de biblioteca de templates para inserir valores em strings
  3. C) Uso de reflexão para obter metadados de objetos em tempo de execução
  4. D) Script que lê especificação e gera módulos de código automaticamente
  5. E) Execução de scripts de testes automatizados para verificar comportamentos

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. Metaprogramação é a técnica em que um programa lê, manipula ou gera outro código, tratando o código como dado. No texto, a equipe criou um script que lê um arquivo de especificação em JSON e produz automaticamente diretórios, classes e funções. Isso é exatamente um programa gerando código, o que caracteriza metaprogramação.
  2. Confronto com o gabarito oficial. Resolvi a questão por conta própria e cheguei à alternativa D, coincidindo com o gabarito oficial.
  3. Por que as outras estão erradas. A: função de ordem superior é um recurso de programação funcional que recebe ou retorna funções, sem gerar código novo. B: templates inserem valores em strings, o que é substituição de texto, não geração de módulos a partir de uma especificação. C: reflexão consulta metadados de objetos em tempo de execução, mas não cria código. E: executar testes automatizados verifica comportamentos do software e não gera nenhum módulo, por isso não é metaprogramação.
  4. Conclusão. O elemento-chave do texto é a geração automática de código a partir de uma especificação, presente apenas na alternativa D.

💡 Dica: Identifique o exemplo que demonstra geração automática de código a partir de especificação.

Alternativa por alternativa

A Erradaerro: Conceitual

O aluno associa abstração e tratamento genérico de dados à ideia de metaprogramação, confundindo programação funcional com geração de código.

B Erradaerro: Conceitual

O aluno acha que, por haver templates no texto, qualquer uso de template seja metaprogramação, sem perceber que inserir valores em strings não produz código novo.

C Erradaerro: Conceituala que mais engana

O aluno confunde reflexão, que apenas inspeciona metadados em tempo de execução, com metaprogramação, que gera ou modifica código.

Por que engana: Confundir metaprogramação com uso simples de funções ou testes automatizados.

D Correta

Geração de código a partir de algoritmo como entrada é metaprogramação, segundo o texto-base

E Erradaerro: Interpretação

O aluno se deixa levar pelo destaque dado aos testes automatizados no texto e supõe que qualquer script automatizado seja metaprogramação, sem notar que testes não geram código.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura medio
Discriminação alto
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ situacional🧩 consolidacao
🎯 Conceito central

metaprogramação em software

📌 Objetivo

avaliacao

🧱 Pré-requisitos

programação básica em software

📚 Reveja

Estude conceitos de metaprogramação e geração automática de código.

⚠️ Erro mais comum

Confundir metaprogramação com uso simples de funções ou testes automatizados.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de [CONFERIR] Construir soluções baseadas no uso de algoritmos e conceitos da Computação para resolver problemas, avaliando suas qualidades e melhorando-as.

🔎 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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.