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
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?
- A) Parametrização: uso de parâmetros para tornar funções genéricas e reutilizáveis em diferentes contextos.
- B) Metaprogramação: abordagem em que programas tratam algoritmos como dados de entrada ou produzem novos programas automaticamente.
- C) Abstração: processo de ocultar detalhes de implementação para simplificar o desenvolvimento de software.
- D) Modularização: prática de dividir um sistema em módulos independentes para facilitar a manutenção.
- 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
- 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.
- 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.
- Portanto a alternativa B está correta, e o gabarito oficial está coerente com a análise feita a partir do texto.
- 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.
- 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.
- A alternativa D está errada, pois modularização trata de dividir um sistema em partes independentes, o que não aparece no texto.
- 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
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.
Metaprogramação envolve usar algoritmos como entrada e gerar programas, conforme descrito no texto.
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.
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.
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
metaprogramação em computação
diagnostico
conceitos básicos de programação
Estude o conceito de metaprogramação e geração automática de código.
Confundir metaprogramação com abstração ou modularização devido a termos semelhantes.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Em um projeto de monitoramento de rios, uma boia computacional organiza leituras de sensores antes de enviá-las por…
- Uma biblioteca escolar recebeu caixas de livros doados para uma feira de troca. Para registrar os exemplares, a equipe…
- Um centro cultural público oferece inscrições on-line para atividades com critérios variados. Na oficina de teatro…
- Uma escola está testando dois protótipos de aplicativo para que estudantes consultem mudanças de sala, horários e…
- Uma secretaria municipal de educação está digitalizando pedidos de transporte escolar e de atendimento em contraturno…
- — O cartaz não pode sair duas vezes, pois a feira começa em uma hora — alertou a coordenadora do centro cultural. No…
🔎 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
