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

Dados ilustrativos: em pesquisa com 50 startups de tecnologia, 30% relataram empregar técnicas em que…

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: em pesquisa com 50 startups de tecnologia, 30% relataram empregar técnicas em que componentes de software geram outros componentes a partir de especificações fornecidas pelos usuários. Um caso típico é um gerador de código que, a partir de um modelo de dados, produz automaticamente funções de acesso a banco. Essa abordagem acelera o desenvolvimento ao permitir aplicar padrões em múltiplos projetos com mínimo esforço manual e menos erros repetitivos, exigindo que desenvolvedores compreendam a estrutura interna dos algorítmos envolvidos. Analise o texto-base e identifique qual prática ilustra metaprogramação, permitindo que um algoritmo seja entrada ou saída para outro.

  1. A) Utilizar gerador de código que recebe modelos de dados e gera funções de acesso a banco
  2. B) Usar gerador de relatórios que concatena strings para criar documentos
  3. C) Empregar funções recursivas para processar coleções de registros
  4. D) Definir classes abstratas para organizar hierarquia de objetos no design
  5. E) Carregar bibliotecas externas em tempo de execução para estender o sistema

✅ Resposta correta: alternativa A

Resolução passo a passo

  1. O texto descreve técnicas em que componentes de software geram outros componentes a partir de especificações, ou seja, programas que produzem ou manipulam outros programas. Esse conceito é a metaprogramação, que permite que um algoritmo seja entrada ou saída de outro.
  2. Analisando as alternativas, a alternativa A descreve exatamente esse caso: um gerador de código recebe um modelo de dados (entrada) e produz automaticamente funções de acesso a banco (saída de código). O próprio gerador opera sobre código, por isso é metaprogramação.
  3. Por que as outras estão erradas:
  4. B) Um gerador de relatórios que concatena strings produz documentos, que são dados, não código executável, então não há um programa gerando outro programa.
  5. C) Funções recursivas são apenas uma técnica de programação comum; não envolvem um algoritmo gerando ou recebendo outro algoritmo.
  6. D) Classes abstratas organizam a hierarquia de objetos no design, mas isso é programação orientada a objetos, não geração ou manipulação de código.
  7. E) Carregar bibliotecas em tempo de execução estende o sistema, mas as bibliotecas são módulos de código já existentes, sem que um algoritmo seja gerado ou transformado por outro.
  8. Conclusão: o gabarito oficial A está correto, pois a metaprogramação aparece justamente no gerador de código que transforma especificações em código.

💡 Dica: Identifique a prática que exemplifica metaprogramação conforme o texto.

Alternativa por alternativa

A Correta

Geração automática de código a partir de um modelo exemplifica metaprogramação ao tratar algoritmos como dados de entrada e saída.

B Erradaerro: Conceituala que mais engana

O aluno confunde qualquer programa que produz saída textual com metaprogramação, sem perceber que o relatório é dado e não código executável.

Por que engana: Confundir metaprogramação com outras técnicas como recursão ou uso de bibliotecas externas.

C Erradaerro: Conceitual

O aluno associa metaprogramação a qualquer técnica algorítmica avançada, como recursão, sem entender que o foco é um programa manipular outro programa.

D Erradaerro: Conceitual

O aluno acredita que organizar código em classes e hierarquias já é metaprogramação, confundindo estrutura de design com geração ou manipulação de código.

E Erradaerro: Senso comum

O aluno entende que carregar módulos dinamicamente é metaprogramação, mas não percebe que, nesse caso, nenhum código é gerado ou transformado pelo sistema.

Raio-X da questão

Dificuldade Difícil
Bloom Avaliar
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 em software

📌 Objetivo

avaliacao

🧱 Pré-requisitos

conceito de algoritmo · programação orientada a objetos

📚 Reveja

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

⚠️ Erro mais comum

Confundir metaprogramação com outras técnicas como recursão ou uso de bibliotecas externas.

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