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

Uma equipe brasileira desenvolve uma ferramenta para acelerar a criação de sistemas. O usuário registra, em um…

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

Uma equipe brasileira desenvolve uma ferramenta para acelerar a criação de sistemas. O usuário registra, em um arquivo JSON, entidades, regras e operações de uma aplicação. Em seguida, o gerador interpreta essa descrição e escreve automaticamente arquivos de código-fonte em Python e Java. A mesma descrição também pode orientar a criação de arquivos de teste, que serão executados posteriormente para verificar o comportamento do sistema. Quando uma regra é alterada no JSON, novos arquivos podem ser produzidos pelo gerador, sem que o código-fonte seja reescrito manualmente. Considerando especificamente a transformação da descrição em código-fonte executável de uma aplicação, qual elemento do cenário exemplifica metaprogramação?

  1. A) O armazenamento das entidades, regras e operações no arquivo JSON.
  2. B) A verificação do comportamento do sistema pelos arquivos de teste.
  3. C) A alteração manual de uma regra registrada no arquivo JSON.
  4. D) A execução posterior dos arquivos de teste para verificar o sistema.
  5. E) A transformação automática da descrição em JSON em código-fonte de uma aplicação.

✅ Resposta correta: alternativa E

Resolução passo a passo

  1. Metaprogramação é a técnica em que um programa lê, gera ou transforma outros programas (ou descrições de programas), em vez de o programador escrever diretamente todo o código. Passo 2: No cenário, o gerador recebe o arquivo JSON com entidades, regras e operações, interpreta essa descrição e escreve automaticamente arquivos de código-fonte em Python e Java. Isso é um programa que produz código executável, o que caracteriza metaprogramação (geração de código). Passo 3: A alternativa E descreve exatamente essa transformação automática da descrição em código-fonte da aplicação, sendo a resposta correta, concordando com o gabarito oficial. Passo 4: A alternativa A está errada porque apenas armazenar dados em JSON não gera nem transforma código; é só representação de dados. Passo 5: A alternativa B está errada porque verificar o comportamento do sistema por meio de testes é uma atividade de validação, não a manipulação de código por outro código. Passo 6: A alternativa C está errada porque a alteração manual de uma regra é justamente o oposto do cenário descrito, em que a mudança no JSON dispensa reescrever o código à mão. Passo 7: A alternativa D está errada porque a execução posterior dos testes é uma etapa de verificação e não envolve gerar ou transformar programas.

💡 Dica: Identifique o conceito de metaprogramação no texto e relacione com as alternativas.

Alternativa por alternativa

A Erradaerro: Conceitual

O aluno pode achar que qualquer uso de um arquivo de descrição (como o JSON) já é metaprogramação, confundindo dados de configuração com um programa que gera código.

B Erradaerro: Conceituala que mais engana

O aluno pode associar metaprogramação a testes automatizados, supondo que verificar o sistema com código de teste já é um programa tratando outro programa.

Por que engana: Confundir geração automática de código com execução ou modificação manual das descrições.

C Erradaerro: Interpretação

O aluno pode ler a alteração da regra no JSON como 'programar' o sistema e, por isso, achar que qualquer mudança feita pelo programador caracteriza metaprogramação, sem notar que o cenário destaca a ausência de reescrita manual.

D Erradaerro: Conceitual

O aluno pode confundir a fase de execução dos testes com a fase de geração de código, achando que rodar um programa sobre o sistema já é metaprogramação.

E Correta

Metaprogramação ocorre quando um programa manipula, produz ou modifica código de outro programa. No cenário, o gerador interpreta uma descrição em JSON e escreve automaticamente código-fonte em Python e Java. A geração de arquivos de teste também envolve automação, mas não é o elemento solicitado, pois o comando delimita a transformação em código-fonte da aplicação.

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 computação

📌 Objetivo

avaliacao

🧱 Pré-requisitos

conceito de script e programação · estrutura de dados JSON

📚 Reveja

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

⚠️ Erro mais comum

Confundir geração automática de código com execução ou modificação manual das descrições.

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