Diante da crescente personalização de softwares, desenvolvedores criaram um sistema onde um programa lê…
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
Diante da crescente personalização de softwares, desenvolvedores criaram um sistema onde um programa lê descrições de algoritmos escritas em um arquivo de texto e produz automaticamente o código-fonte correspondente em diferentes linguagens. Esse mecanismo permite estender o gerador com novas regras e suporta a criação de estruturas de controle, funções e classes sem necessidade de escrever manualmente cada versão do programa. Analise o texto e identifique qual prática descrita exemplifica metaprogramação como forma de generalização na construção de programas?
- A) Configuração de parâmetros em arquivo externo sem alterar o programa
- B) Criação de interface de usuário com elementos visuais
- C) Execução de testes unitários por ferramenta automatizada
- D) Geração de código a partir de definições de algoritmos por um script
- E) Uso de biblioteca estatística para cálculos específicos
✅ Resposta correta: alternativa D
Resolução passo a passo
- O texto descreve um programa que lê descrições de algoritmos em arquivo de texto e gera automaticamente código-fonte em várias linguagens. Isso é metaprogramação: um programa que produz ou manipula outros programas (código) como dados.
- A generalização aparece porque o gerador pode ser estendido com novas regras e produz estruturas de controle, funções e classes sem que cada versão seja escrita à mão. Uma única definição abstrata serve para muitas implementações concretas.
- A alternativa D descreve exatamente isso: geração de código a partir de definições de algoritmos por um script. Esse é o caso central de metaprogramação descrito no enunciado.
- Por que as outras estão erradas:
- A) Configurar parâmetros em arquivo externo ajusta o comportamento de um programa, mas não gera código novo.
- B) Criar interface visual é desenvolvimento de interface, sem relação com produzir código.
- C) Executar testes unitários automatizados verifica programas, mas não os cria a partir de descrições.
- E) Usar biblioteca estatística é apenas reutilização de funções de cálculo, sem metaprogramação.
- Conclusão: a letra correta é D, que coincide com o gabarito oficial.
💡 Dica: Identifique a prática que exemplifica metaprogramação na descrição dada.
Alternativa por alternativa
O aluno pode confundir qualquer forma de flexibilidade ou parametrização com metaprogramação, achando que ajustar um programa por arquivo externo já generaliza a construção de programas.
Por que engana: Confundir metaprogramação com outras práticas como configuração ou uso de bibliotecas externas.
O aluno associa generalização a elementos visuais ou a interfaces amigáveis, ignorando que o texto trata de produção automática de código.
O aluno pensa que automatizar qualquer tarefa de desenvolvimento, como testes, já é metaprogramação, sem perceber que o texto fala em criar código-fonte.
Essa prática usa um programa que recebe algoritmos como entrada e gera código, caracterizando metaprogramação.
O aluno considera que reutilizar bibliotecas prontas é generalização na construção de programas, sem distinguir reuso de funções de geração de código.
Raio-X da questão
metaprogramação e generalização
avaliacao
conceito de algoritmo · programação básica
Estude o conceito de metaprogramação e geração automática de código.
Confundir metaprogramação com outras práticas como configuração ou uso de bibliotecas externas.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- 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…
- Dados ilustrativos: em pesquisa com 50 startups de tecnologia, 30% relataram empregar técnicas em que componentes de…
- Por que certas ferramentas de desenvolvimento conseguem gerar trechos de código automaticamente, adaptando-se a…
- Quando comecei a desenvolver uma ferramenta para automatizar a geração de relatórios, implementei um programa que lê…
- Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de atendimento. Para…
🔎 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
