Em um sistema de bilhetagem de ônibus, uma equipe desenvolveu a ferramenta Rastreador para investigar falhas…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
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
Em um sistema de bilhetagem de ônibus, uma equipe desenvolveu a ferramenta Rastreador para investigar falhas no roteiro de controle do validador. Esse roteiro contém instruções como ler o cartão, verificar o saldo, registrar a passagem e liberar a catraca. No modo de acompanhamento, o Rastreador recebe esse roteiro e produz uma nova versão, sem edição manual, acrescentando instruções que registram o início e o fim de cada etapa e os valores lidos em pontos críticos. Em outro modo, a partir do mesmo roteiro, ele gera automaticamente roteiros curtos para testar situações como cartão inválido, saldo zero e leitura dupla. Considerando especificamente o modo de acompanhamento descrito no texto, qual ação evidencia a metaprogramação como forma de generalização na construção de programas?
- A) Executar o roteiro recebido para verificar se a catraca é liberada.
- B) Ler o cartão, verificar o saldo e liberar a catraca conforme o roteiro.
- C) Gerar roteiros curtos para testar cartão inválido, saldo zero e leitura dupla.
- D) Produzir um novo roteiro a partir do roteiro recebido, acrescentando instruções de registro.
- E) Registrar o início, o fim e os valores de cada etapa durante a execução.
✅ Resposta correta: alternativa D
Resolução passo a passo
- A metaprogramação ocorre quando um programa trata outro programa como dado, isto é, lê, analisa ou produz código. Passo 2: No modo de acompanhamento, o Rastreador recebe o roteiro original e produz uma nova versão dele, sem edição manual, acrescentando instruções de registro. A ação central é, portanto, transformar um programa em outro programa, o que caracteriza a metaprogramação. Passo 3: A alternativa D descreve exatamente essa ação: a partir do roteiro recebido, é produzido um novo roteiro com instruções de registro acrescentadas. Passo 4: A alternativa A está errada porque executar o roteiro é apenas rodar um programa, sem gerar outro. Passo 5: A alternativa B está errada porque descreve o conteúdo do roteiro original (ler, verificar, liberar), que não é criado nem transformado pelo Rastreador. Passo 6: A alternativa C está errada porque a geração de roteiros curtos para cartão inválido, saldo zero e leitura dupla pertence ao outro modo descrito no texto, não ao modo de acompanhamento. Passo 7: A alternativa E está errada porque o registro de início, fim e valores é o efeito do roteiro produzido durante a execução, e não a ação de metaprogramação realizada pelo Rastreador. Passo 8: Conclusão: a resposta correta é a D, em concordância com o gabarito oficial.
💡 Dica: Analise como o Rastreador modifica e gera roteiros automaticamente.
Alternativa por alternativa
O aluno entende que a ação relevante é apenas executar o roteiro recebido, confundindo execução de um programa com a geração de outro programa.
O aluno descreve o comportamento do roteiro original como se fosse a ação do Rastreador, sem perceber que o texto pede a ação que transforma o programa.
O aluno lê a pergunta de forma imprecisa e associa o Rastreador à geração de roteiros de teste, que pertence ao outro modo descrito, ignorando a restrição 'especificamente o modo de acompanhamento'.
A metaprogramação ocorre quando um programa manipula outro programa ou roteiro como dado. No caso apresentado, o Rastreador recebe um roteiro de controle e gera automaticamente uma nova versão dele, com instruções adicionais de registro. Essa transformação permite aplicar o mesmo mecanismo a diferentes roteiros, caracterizando generalização.
O aluno confunde o efeito do roteiro gerado (registrar início, fim e valores) com a própria metaprogramação, sem notar que esse registro é executado pelo programa produzido e não pelo ato de gerá-lo.
Raio-X da questão
metaprogramação e generalização
diagnostico
conceito de programação básica · geração automática de código
Estude o conceito de metaprogramação e geração automática de código.
Confundir metaprogramação com simples execução de instruções sem modificação do código.
ciencia_tecnologia
pensamento_critico
cotidiano
Questões parecidas com resolução
- Uma empresa de transporte tem vários programas para calcular trajetos de ônibus. Cada programa considera algo diferente…
- Linhas de código percorriam as telas dos participantes durante uma maratona de desenvolvimento, enquanto vozes trocavam…
- Quando comecei a desenvolver uma ferramenta para automatizar a geração de relatórios, implementei um programa que lê…
- Por que certas ferramentas de desenvolvimento conseguem gerar trechos de código automaticamente, adaptando-se a…
- Uma secretaria municipal de educação está digitalizando pedidos de transporte escolar e de atendimento em contraturno…
- Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de atendimento. Para…
🔎 Resolver outra questão
Cole o enunciado e veja a resolução passo a passo, a alternativa correta e por que as outras estão erradas.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
