Uma empresa brasileira desenvolve um sistema para produzir relatórios financeiros. Os indicadores são…
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
Uma empresa brasileira desenvolve um sistema para produzir relatórios financeiros. Os indicadores são descritos em arquivos de configuração. Um programa lê essas descrições e gera automaticamente módulos em Python, que depois são executados pelo sistema. A equipe também usa consultas SQL apenas para buscar dados no banco, funções que recebem outras funções como argumentos e plugins instalados como módulos independentes, sem geração automática de código nem alteração do código-fonte principal. Com base no texto, qual prática exemplifica metaprogramação?
- A) Carregar plugins independentes para acrescentar funcionalidades ao sistema
- B) Ler descrições de algoritmos e gerar automaticamente módulos de código Python
- C) Reutilizar funcionalidades por meio de módulos independentes do sistema
- D) Executar consultas SQL para buscar dados armazenados no banco
- E) Passar uma função como argumento para outra função do sistema
✅ Resposta correta: alternativa B
Resolução passo a passo
- Metaprogramação é a prática de escrever programas que tratam código como dado, isto é, que leem, analisam, geram ou modificam outros programas ou módulos de código.
- No texto, um programa lê arquivos de configuração que descrevem os indicadores e, a partir disso, gera automaticamente módulos em Python que depois são executados. Ou seja, o programa produz código como saída, o que caracteriza metaprogramação, sobretudo na forma de geração de código.
- Por que as outras alternativas estão erradas: A) carregar plugins independentes é extensibilidade modular, não manipulação de código; C) reutilizar módulos independentes é apenas organização e reuso de código comum; D) executar consultas SQL é linguagem de consulta a dados, não programa que manipula código; E) passar função como argumento é programação funcional (funções de ordem superior), que trata funções como valores, mas não gera nem altera código.
- Conclusão: o gabarito B está correto, pois a geração automática de módulos Python a partir de descrições é o exemplo central de metaprogramação apresentado no texto.
💡 Dica: Identifique a prática que gera código automaticamente a partir de definições.
Alternativa por alternativa
Confunde carregar módulos externos para estender o sistema com metaprogramação, achando que qualquer dinamismo no código já é metaprogramação.
Por que engana: Confundir metaprogramação com herança ou uso de funções como argumentos.
Metaprogramação ocorre quando um programa manipula código, criando, analisando ou modificando código de forma automática. No texto, o programa transforma descrições presentes em arquivos de configuração em módulos Python, produzindo novo código-fonte antes de sua execução.
Acha que reutilizar funcionalidades por módulos independentes é metaprogramação, sem perceber que o texto diz que não há geração nem alteração de código nesses módulos.
Associa qualquer código 'automatizado' ou sofisticado à metaprogramação, mas consultas SQL apenas buscam dados e não manipulam programas.
Acredita que tratar funções como argumentos seja metaprogramação, confundindo programação funcional (funções de ordem superior) com a manipulação de código.
Raio-X da questão
metaprogramação em software
avaliacao
conceitos básicos de programação · funções e classes em Python
Estude conceitos de metaprogramação e geração automática de código.
Confundir metaprogramação com herança ou uso de funções como argumentos.
ciencia_tecnologia
pensamento_critico
cotidiano
Questões parecidas com resolução
- Um sistema portátil registra a corrente gerada em um eletrodo de trabalho durante um pulso de 4 segundos. Para comparar…
- Em um protótipo computacional que monitora a salinidade de um tanque, dois eletrodos ficam imersos na água e são usados…
- Em uma lavanderia, uma pessoa instala dois eletrodos próximos ao piso, ligados a uma entrada digital de um controlador…
- Em uma demonstração de interface cérebro-computador, eletrodos colocados sobre o couro cabeludo captam sinais elétricos…
- Em um protótipo de interface computacional controlada por sinais musculares, cada canal utiliza um eletrodo para captar…
- Em uma prótese controlada por sinais musculares, eletrodos na pele captam a atividade elétrica e a enviam ao sistema…
🔎 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
