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

Dados ilustrativos: 68% das empresas de software empregam geradores automáticos de código para acelerar a…

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

Dados ilustrativos: 68% das empresas de software empregam geradores automáticos de código para acelerar a construção de serviços web. Na MicroFlux, desenvolvedores criaram um programa que lê um arquivo de especificação JSON contendo detalhes de endpoints, parâmetros e respostas esperadas, e gera automaticamente códigos de controladores em diferentes linguagens. O gerador inclui validações e comentários padronizados, adaptando o template base conforme as instruções. Em paralelo, os profissionais também utilizam funções de ordem superior na aplicação, bibliotecas de terceiros para autenticação e classes genéricas para modelar dados, mas mantêm separadas as etapas de geração e execução do código. Analise o texto-base e identifique qual prática exemplifica a metaprogramação como generalização na construção de programas.

  1. A) Emprego de classes genéricas para modelar diferentes entidades de dados
  2. B) Uso de funções de ordem superior para processar coleções de dados
  3. C) Separação das etapas de escrita e execução do código no ciclo de desenvolvimento
  4. D) Emprego de bibliotecas de terceiros para autenticação de usuários
  5. E) Criação de programa que lê especificação JSON e gera códigos de controladores

✅ Resposta correta: alternativa E

Resolução passo a passo

  1. Identifique o conceito pedido. Metaprogramação é a escrita de programas que manipulam ou geram outros programas (código como dado). Na generalização, o programa produz código de forma genérica a partir de uma descrição, em vez de o programador escrever cada parte manualmente.
  2. Localize no texto a prática que se encaixa nisso. O programa da MicroFlux lê um arquivo de especificação JSON (com endpoints, parâmetros e respostas) e gera automaticamente códigos de controladores em diferentes linguagens, adaptando um template base. Isso é um programa que escreve código, ou seja, metaprogramação como generalização.
  3. Verifique as demais alternativas. A) Classes genéricas para modelar dados são parametrização de tipos, uma forma de reuso, mas o programa não gera nem manipula código. B) Funções de ordem superior são abstração funcional, que recebem ou devolvem funções, sem gerar código. C) Separar escrita e execução é uma organização do ciclo de desenvolvimento, não a prática de gerar programas. D) Bibliotecas de terceiros para autenticação são reuso de software externo, sem geração de código.
  4. Conclusão. A alternativa E é a que exemplifica a metaprogramação como generalização. Concordo com o gabarito oficial, que é E.

💡 Dica: Identifique a prática que exemplifica metaprogramação na descrição dada.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

O aluno acredita que qualquer generalização do código, como usar classes genéricas, já é metaprogramação. Confunde reutilização de tipos parametrizados com a produção automática de código.

Por que engana: Confundir metaprogramação com uso comum de funções ou classes sem entender a geração automática de código.

B Erradaerro: Conceitual

O aluno associa generalização à abstração funcional, achando que uma função que recebe outra função já caracteriza metaprogramação. Não percebe que aqui não há geração de código.

C Erradaerro: Interpretação

O aluno lê a frase final do texto, que diz que as etapas são mantidas separadas, e a toma como a prática central. Não percebe que essa separação é apenas organização do processo, e não a geração de programas.

D Erradaerro: Senso comum

O aluno vê o uso de bibliotecas de terceiros como generalização, por entender que reaproveitar código externo já é generalizar. Não distingue reuso de software da geração de código por outro programa.

E Correta

O gerador de código usa um algoritmo de entrada (JSON) e produz outro algoritmo (código), caracterizando metaprogramação.

Raio-X da questão

Dificuldade Difícil
Bloom Analisar
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✍️ interpretativa🧩 consolidacao
🎯 Conceito central

metaprogramação e generalização

📌 Objetivo

avaliacao

🧱 Pré-requisitos

conceitos básicos de programação · funções e classes em programação

📚 Reveja

Estude o conceito de metaprogramação e exemplos de generalização em programação.

⚠️ Erro mais comum

Confundir metaprogramação com uso comum de funções ou classes sem entender a geração automática de código.

🌎 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.