Dados ilustrativos: 68% das empresas de software empregam geradores automáticos de código para acelerar 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: 68% das empresas de software empregam geradores automáticos de código para acelerar a construção de serviços web. Na MicroFlux, desenvolvedores criaram um programa que lê um arquivo de especificação JSON contendo detalhes de endpoints, parâmetros e respostas esperadas, e gera automaticamente códigos de controladores em diferentes linguagens. O gerador inclui validações e comentários padronizados, adaptando o template base conforme as instruções. Em paralelo, os profissionais também utilizam funções de ordem superior na aplicação, bibliotecas de terceiros para autenticação e classes genéricas para modelar dados, mas mantêm separadas as etapas de geração e execução do código. Analise o texto-base e identifique qual prática exemplifica a metaprogramação como generalização na construção de programas.
- A) Emprego de classes genéricas para modelar diferentes entidades de dados
- B) Uso de funções de ordem superior para processar coleções de dados
- C) Separação das etapas de escrita e execução do código no ciclo de desenvolvimento
- D) Emprego de bibliotecas de terceiros para autenticação de usuários
- E) Criação de programa que lê especificação JSON e gera códigos de controladores
✅ Resposta correta: alternativa E
Resolução passo a passo
- Identifique o conceito pedido. Metaprogramação é a escrita de programas que manipulam ou geram outros programas (código como dado). Na generalização, o programa produz código de forma genérica a partir de uma descrição, em vez de o programador escrever cada parte manualmente.
- Localize no texto a prática que se encaixa nisso. O programa da MicroFlux lê um arquivo de especificação JSON (com endpoints, parâmetros e respostas) e gera automaticamente códigos de controladores em diferentes linguagens, adaptando um template base. Isso é um programa que escreve código, ou seja, metaprogramação como generalização.
- Verifique as demais alternativas. A) Classes genéricas para modelar dados são parametrização de tipos, uma forma de reuso, mas o programa não gera nem manipula código. B) Funções de ordem superior são abstração funcional, que recebem ou devolvem funções, sem gerar código. C) Separar escrita e execução é uma organização do ciclo de desenvolvimento, não a prática de gerar programas. D) Bibliotecas de terceiros para autenticação são reuso de software externo, sem geração de código.
- Conclusão. A alternativa E é a que exemplifica a metaprogramação como generalização. Concordo com o gabarito oficial, que é E.
💡 Dica: Identifique a prática que exemplifica metaprogramação na descrição dada.
Alternativa por alternativa
O aluno acredita que qualquer generalização do código, como usar classes genéricas, já é metaprogramação. Confunde reutilização de tipos parametrizados com a produção automática de código.
Por que engana: Confundir metaprogramação com uso comum de funções ou classes sem entender a geração automática de código.
O aluno associa generalização à abstração funcional, achando que uma função que recebe outra função já caracteriza metaprogramação. Não percebe que aqui não há geração de código.
O aluno lê a frase final do texto, que diz que as etapas são mantidas separadas, e a toma como a prática central. Não percebe que essa separação é apenas organização do processo, e não a geração de programas.
O aluno vê o uso de bibliotecas de terceiros como generalização, por entender que reaproveitar código externo já é generalizar. Não distingue reuso de software da geração de código por outro programa.
O gerador de código usa um algoritmo de entrada (JSON) e produz outro algoritmo (código), caracterizando metaprogramação.
Raio-X da questão
metaprogramação e generalização
avaliacao
conceitos básicos de programação · funções e classes em programação
Estude o conceito de metaprogramação e exemplos de generalização em programação.
Confundir metaprogramação com uso comum de funções ou classes sem entender a geração automática de código.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Dados ilustrativos: em pesquisa com 50 startups de tecnologia, 30% relataram empregar técnicas em que componentes de…
- Em levantamento interno recente, 85% dos desenvolvedores de uma empresa de software relatou gasto excessivo de horas…
- Vislumbres do backend de uma plataforma de desenvolvimento revelam uma equipe que adotou o AutoDev, uma ferramenta capaz…
- Narrativa em primeira pessoa: trabalhei em um projeto interno de automação de APIs que visava reduzir o tempo de…
- — Percebi que escrever manualmente rotas e controladores para cada novo recurso torna o desenvolvimento lento, comentou…
- Diante da crescente personalização de softwares, desenvolvedores criaram um sistema onde um programa lê descrições de…
🔎 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
