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

Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de…

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

Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de atendimento. Para isso, criou um script que recebe descrições textuais de operações, interpreta essas descrições e produz automaticamente módulos de código. No mesmo projeto, os desenvolvedores também definem variáveis de ambiente para selecionar configurações, utilizam uma biblioteca externa para validar formulários, escrevem funções que percorrem listas e organizam os arquivos do sistema em diferentes pastas. Essas práticas têm finalidades distintas: algumas configuram ou executam um programa, enquanto outra faz um programa manipular descrições para produzir novo código durante o desenvolvimento. Com base no texto, qual prática caracteriza metaprogramação, isto é, o uso de algoritmos como entrada ou saída de outro programa para produzir ou modificar código?

  1. A) Utilizar uma biblioteca externa para validar formulários do sistema
  2. B) Criar um script que interpreta descrições e produz módulos de código
  3. C) Organizar os arquivos do sistema em diferentes pastas do projeto
  4. D) Definir variáveis de ambiente para selecionar configurações do sistema
  5. E) Escrever funções que percorrem listas durante a execução do sistema

✅ Resposta correta: alternativa B

Resolução passo a passo

  1. A questão pergunta qual prática caracteriza metaprogramação, definida no enunciado como o uso de algoritmos como entrada ou saída de outro programa para produzir ou modificar código.
  2. O texto descreve cinco práticas. Apenas uma delas faz um programa manipular descrições para gerar novo código durante o desenvolvimento: o script que recebe descrições textuais de operações, as interpreta e produz automaticamente módulos de código. Nesse caso, o programa tem como entrada/saída outro código ou descrição de código, o que se encaixa exatamente na definição.
  3. Por isso a alternativa B é a correta, e concordo com o gabarito oficial.
  4. Por que as outras estão erradas:
  5. A) Usar uma biblioteca externa para validar formulários é reutilização de código em tempo de execução, sem produzir ou modificar código.
  6. C) Organizar arquivos em pastas é uma decisão de estrutura do projeto, não uma manipulação de código por programa.
  7. D) Definir variáveis de ambiente serve apenas para configurar o programa, sem gerar nem alterar código.
  8. E) Escrever funções que percorrem listas durante a execução é programação comum, na qual o código processa dados, sem gerar outro código.

💡 Dica: Identifique a prática que exemplifica metaprogramação, ou seja, geração automática de código por outro programa.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

O aluno confunde usar uma biblioteca externa com metaprogramação, achando que chamar código de terceiros já significa que um programa manipula código. Não percebe que a biblioteca apenas é executada para validar dados, sem produzir ou modificar código.

Por que engana: Confundir uso de bibliotecas ou variáveis de ambiente com metaprogramação, não reconhecendo a geração automática de código.

B Correta

Essa prática caracteriza metaprogramação porque um programa recebe uma descrição de operações como entrada e gera código como saída. Assim, o programa atua sobre representações de outros programas ou de seus componentes, em vez de apenas executar diretamente uma tarefa do sistema.

C Erradaerro: Senso comum

O aluno associa qualquer atividade de organização do projeto a metaprogramação, pensando que mexer na estrutura de arquivos é modificar o programa. Não distingue organização de arquivos de geração ou alteração automática de código.

D Erradaerro: Conceitual

O aluno acredita que, como variáveis de ambiente mudam o comportamento do sistema, isso caracteriza modificar o programa. Não percebe que apenas selecionam configurações já existentes, sem gerar código.

E Erradaerro: Interpretação

O aluno entende que qualquer código que manipula listas em tempo de execução é metaprogramação, ignorando que o texto exige que o algoritmo atue sobre código para produzi-lo ou modificá-lo. Ele também desconsidera a expressão 'durante a execução', que indica processamento de dados e não geração de código.

Raio-X da questão

Dificuldade Média
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 e geração automática de código

📌 Objetivo

avaliacao

🧱 Pré-requisitos

conceito de algoritmo · programação básica

📚 Reveja

Estude o conceito de metaprogramação e como algoritmos podem gerar código automaticamente.

⚠️ Erro mais comum

Confundir uso de bibliotecas ou variáveis de ambiente com metaprogramação, não reconhecendo a geração automática de código.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

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.