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
- Diante da crescente personalização de softwares, desenvolvedores criaram um sistema onde um programa lê descrições de…
- Quando comecei a desenvolver uma ferramenta para automatizar a geração de relatórios, implementei um programa que lê…
- Dados ilustrativos: em pesquisa com 50 startups de tecnologia, 30% relataram empregar técnicas em que componentes de…
- Vislumbres do backend de uma plataforma de desenvolvimento revelam uma equipe que adotou o AutoDev, uma ferramenta capaz…
- Em levantamento interno recente, 85% dos desenvolvedores de uma empresa de software relatou gasto excessivo de horas…
- Por que certas ferramentas de desenvolvimento conseguem gerar trechos de código automaticamente, adaptando-se a…
🔎 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
