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

Dados ilustrativos: uma equipe criou uma ferramenta de linha de comando que recebe um arquivo contendo 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: uma equipe criou uma ferramenta de linha de comando que recebe um arquivo contendo a descrição de um algoritmo de compressão de dados e, com base nessa especificação, gera automaticamente uma nova biblioteca em linguagem Python. O arquivo de entrada define as etapas de análise de padrões e substituições de repetição. A ferramenta processa essa especificação e produz funções otimizadas para o algoritmo descrito, sem que o desenvolvedor escreva manualmente o código. Assim, para cada nova descrição de algoritmo de compressão, a biblioteca correspondente é criada pela própria ferramenta, economizando tempo e reduzindo erros de implementação. Identifique, com base no texto, qual conceito de computação descreve o uso dessa ferramenta que gera programas a partir de especificações de algoritmo?

  1. A) Parametrização: uso de parâmetros para tornar funções genéricas e reutilizáveis em diferentes contextos.
  2. B) Metaprogramação: abordagem em que programas tratam algoritmos como dados de entrada ou produzem novos programas automaticamente.
  3. C) Abstração: processo de ocultar detalhes de implementação para simplificar o desenvolvimento de software.
  4. D) Modularização: prática de dividir um sistema em módulos independentes para facilitar a manutenção.
  5. E) Recursão: técnica em que uma função chama a si mesma para resolver subproblemas iguais ou semelhantes.

✅ Resposta correta: alternativa B

Resolução passo a passo

  1. O enunciado descreve uma ferramenta que recebe, como entrada, a descrição de um algoritmo de compressão e gera automaticamente uma nova biblioteca em Python, sem que o desenvolvedor escreva o código manualmente.
  2. Isso caracteriza um programa que trata uma especificação de algoritmo como dado de entrada e produz, como saída, outros programas (funções e bibliotecas). Esse conceito é a metaprogramação.
  3. Portanto a alternativa B está correta, e o gabarito oficial está coerente com a análise feita a partir do texto.
  4. A alternativa A está errada, pois parametrização trata de usar parâmetros para tornar uma função reutilizável, e não de gerar novos programas a partir de especificações.
  5. A alternativa C está errada, pois abstração oculta detalhes de implementação, mas não descreve a criação automática de código a partir de uma descrição.
  6. A alternativa D está errada, pois modularização trata de dividir um sistema em partes independentes, o que não aparece no texto.
  7. A alternativa E está errada, pois recursão é uma técnica em que uma função chama a si mesma, e o texto não menciona chamadas recursivas.

💡 Dica: Leia o texto atentamente e relacione o conceito que descreve a geração automática de programas.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

O aluno associa a ferramenta ao reaproveitamento de código por meio de parâmetros, ignorando que o texto fala em gerar uma nova biblioteca a partir de uma especificação.

Por que engana: Confundir metaprogramação com abstração ou modularização devido a termos semelhantes.

B Correta

Metaprogramação envolve usar algoritmos como entrada e gerar programas, conforme descrito no texto.

C Erradaerro: Interpretação

O aluno foca no fato de o desenvolvedor não precisar escrever o código manualmente e entende isso como ocultação de detalhes, sem perceber que o ponto central é a geração de programas.

D Erradaerro: Conceitual

O aluno considera que a ferramenta organiza o sistema em partes, como bibliotecas separadas, e confunde a organização do software com a geração automática de código.

E Erradaerro: Senso comum

O aluno associa a palavra algoritmo e o processo de análise de padrões repetidos a técnicas recursivas, confundindo a ideia de repetição com chamadas de função que se chamam a si mesmas.

Raio-X da questão

Dificuldade Difícil
Bloom Lembrar
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

diagnostico

🧱 Pré-requisitos

conceitos básicos de programação

📚 Reveja

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

⚠️ Erro mais comum

Confundir metaprogramação com abstração ou modularização devido a termos semelhantes.

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