GeraProva GeraProva Provas com IA para professores do Brasil
Computação1ª sérieBNCC EM13CO04Média⏱ medio

Diante da crescente personalização de softwares, desenvolvedores criaram um sistema onde um programa lê…

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

Diante da crescente personalização de softwares, desenvolvedores criaram um sistema onde um programa lê descrições de algoritmos escritas em um arquivo de texto e produz automaticamente o código-fonte correspondente em diferentes linguagens. Esse mecanismo permite estender o gerador com novas regras e suporta a criação de estruturas de controle, funções e classes sem necessidade de escrever manualmente cada versão do programa. Analise o texto e identifique qual prática descrita exemplifica metaprogramação como forma de generalização na construção de programas?

  1. A) Configuração de parâmetros em arquivo externo sem alterar o programa
  2. B) Criação de interface de usuário com elementos visuais
  3. C) Execução de testes unitários por ferramenta automatizada
  4. D) Geração de código a partir de definições de algoritmos por um script
  5. E) Uso de biblioteca estatística para cálculos específicos

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. O texto descreve um programa que lê descrições de algoritmos em arquivo de texto e gera automaticamente código-fonte em várias linguagens. Isso é metaprogramação: um programa que produz ou manipula outros programas (código) como dados.
  2. A generalização aparece porque o gerador pode ser estendido com novas regras e produz estruturas de controle, funções e classes sem que cada versão seja escrita à mão. Uma única definição abstrata serve para muitas implementações concretas.
  3. A alternativa D descreve exatamente isso: geração de código a partir de definições de algoritmos por um script. Esse é o caso central de metaprogramação descrito no enunciado.
  4. Por que as outras estão erradas:
  5. A) Configurar parâmetros em arquivo externo ajusta o comportamento de um programa, mas não gera código novo.
  6. B) Criar interface visual é desenvolvimento de interface, sem relação com produzir código.
  7. C) Executar testes unitários automatizados verifica programas, mas não os cria a partir de descrições.
  8. E) Usar biblioteca estatística é apenas reutilização de funções de cálculo, sem metaprogramação.
  9. Conclusão: a letra correta é D, que coincide com o gabarito oficial.

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

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

O aluno pode confundir qualquer forma de flexibilidade ou parametrização com metaprogramação, achando que ajustar um programa por arquivo externo já generaliza a construção de programas.

Por que engana: Confundir metaprogramação com outras práticas como configuração ou uso de bibliotecas externas.

B Erradaerro: Interpretação

O aluno associa generalização a elementos visuais ou a interfaces amigáveis, ignorando que o texto trata de produção automática de código.

C Erradaerro: Conceitual

O aluno pensa que automatizar qualquer tarefa de desenvolvimento, como testes, já é metaprogramação, sem perceber que o texto fala em criar código-fonte.

D Correta

Essa prática usa um programa que recebe algoritmos como entrada e gera código, caracterizando metaprogramação.

E Erradaerro: Senso comum

O aluno considera que reutilizar bibliotecas prontas é generalização na construção de programas, sem distinguir reuso de funções de geração de código.

Raio-X da questão

Dificuldade Média
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

conceito de algoritmo · programação básica

📚 Reveja

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

⚠️ Erro mais comum

Confundir metaprogramação com outras práticas como configuraçã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.