Dados ilustrativos: em pesquisa com 50 startups de tecnologia, 30% relataram empregar técnicas em que…
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: em pesquisa com 50 startups de tecnologia, 30% relataram empregar técnicas em que componentes de software geram outros componentes a partir de especificações fornecidas pelos usuários. Um caso típico é um gerador de código que, a partir de um modelo de dados, produz automaticamente funções de acesso a banco. Essa abordagem acelera o desenvolvimento ao permitir aplicar padrões em múltiplos projetos com mínimo esforço manual e menos erros repetitivos, exigindo que desenvolvedores compreendam a estrutura interna dos algorítmos envolvidos. Analise o texto-base e identifique qual prática ilustra metaprogramação, permitindo que um algoritmo seja entrada ou saída para outro.
- A) Utilizar gerador de código que recebe modelos de dados e gera funções de acesso a banco
- B) Usar gerador de relatórios que concatena strings para criar documentos
- C) Empregar funções recursivas para processar coleções de registros
- D) Definir classes abstratas para organizar hierarquia de objetos no design
- E) Carregar bibliotecas externas em tempo de execução para estender o sistema
✅ Resposta correta: alternativa A
Resolução passo a passo
- O texto descreve técnicas em que componentes de software geram outros componentes a partir de especificações, ou seja, programas que produzem ou manipulam outros programas. Esse conceito é a metaprogramação, que permite que um algoritmo seja entrada ou saída de outro.
- Analisando as alternativas, a alternativa A descreve exatamente esse caso: um gerador de código recebe um modelo de dados (entrada) e produz automaticamente funções de acesso a banco (saída de código). O próprio gerador opera sobre código, por isso é metaprogramação.
- Por que as outras estão erradas:
- B) Um gerador de relatórios que concatena strings produz documentos, que são dados, não código executável, então não há um programa gerando outro programa.
- C) Funções recursivas são apenas uma técnica de programação comum; não envolvem um algoritmo gerando ou recebendo outro algoritmo.
- D) Classes abstratas organizam a hierarquia de objetos no design, mas isso é programação orientada a objetos, não geração ou manipulação de código.
- E) Carregar bibliotecas em tempo de execução estende o sistema, mas as bibliotecas são módulos de código já existentes, sem que um algoritmo seja gerado ou transformado por outro.
- Conclusão: o gabarito oficial A está correto, pois a metaprogramação aparece justamente no gerador de código que transforma especificações em código.
💡 Dica: Identifique a prática que exemplifica metaprogramação conforme o texto.
Alternativa por alternativa
Geração automática de código a partir de um modelo exemplifica metaprogramação ao tratar algoritmos como dados de entrada e saída.
O aluno confunde qualquer programa que produz saída textual com metaprogramação, sem perceber que o relatório é dado e não código executável.
Por que engana: Confundir metaprogramação com outras técnicas como recursão ou uso de bibliotecas externas.
O aluno associa metaprogramação a qualquer técnica algorítmica avançada, como recursão, sem entender que o foco é um programa manipular outro programa.
O aluno acredita que organizar código em classes e hierarquias já é metaprogramação, confundindo estrutura de design com geração ou manipulação de código.
O aluno entende que carregar módulos dinamicamente é metaprogramação, mas não percebe que, nesse caso, nenhum código é gerado ou transformado pelo sistema.
Raio-X da questão
metaprogramação em software
avaliacao
conceito de algoritmo · programação orientada a objetos
Estude o conceito de metaprogramação e geração automática de código.
Confundir metaprogramação com outras técnicas como recursão ou uso de bibliotecas externas.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Dados ilustrativos: 68% das empresas de software empregam geradores automáticos de código para acelerar a construção 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…
- Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de atendimento. Para…
- 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…
🔎 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
