Uma equipe brasileira desenvolve uma ferramenta para acelerar a criação de sistemas. O usuário registra, em um…
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 equipe brasileira desenvolve uma ferramenta para acelerar a criação de sistemas. O usuário registra, em um arquivo JSON, entidades, regras e operações de uma aplicação. Em seguida, o gerador interpreta essa descrição e escreve automaticamente arquivos de código-fonte em Python e Java. A mesma descrição também pode orientar a criação de arquivos de teste, que serão executados posteriormente para verificar o comportamento do sistema. Quando uma regra é alterada no JSON, novos arquivos podem ser produzidos pelo gerador, sem que o código-fonte seja reescrito manualmente. Considerando especificamente a transformação da descrição em código-fonte executável de uma aplicação, qual elemento do cenário exemplifica metaprogramação?
- A) O armazenamento das entidades, regras e operações no arquivo JSON.
- B) A verificação do comportamento do sistema pelos arquivos de teste.
- C) A alteração manual de uma regra registrada no arquivo JSON.
- D) A execução posterior dos arquivos de teste para verificar o sistema.
- E) A transformação automática da descrição em JSON em código-fonte de uma aplicação.
✅ Resposta correta: alternativa E
Resolução passo a passo
- Metaprogramação é a técnica em que um programa lê, gera ou transforma outros programas (ou descrições de programas), em vez de o programador escrever diretamente todo o código. Passo 2: No cenário, o gerador recebe o arquivo JSON com entidades, regras e operações, interpreta essa descrição e escreve automaticamente arquivos de código-fonte em Python e Java. Isso é um programa que produz código executável, o que caracteriza metaprogramação (geração de código). Passo 3: A alternativa E descreve exatamente essa transformação automática da descrição em código-fonte da aplicação, sendo a resposta correta, concordando com o gabarito oficial. Passo 4: A alternativa A está errada porque apenas armazenar dados em JSON não gera nem transforma código; é só representação de dados. Passo 5: A alternativa B está errada porque verificar o comportamento do sistema por meio de testes é uma atividade de validação, não a manipulação de código por outro código. Passo 6: A alternativa C está errada porque a alteração manual de uma regra é justamente o oposto do cenário descrito, em que a mudança no JSON dispensa reescrever o código à mão. Passo 7: A alternativa D está errada porque a execução posterior dos testes é uma etapa de verificação e não envolve gerar ou transformar programas.
💡 Dica: Identifique o conceito de metaprogramação no texto e relacione com as alternativas.
Alternativa por alternativa
O aluno pode achar que qualquer uso de um arquivo de descrição (como o JSON) já é metaprogramação, confundindo dados de configuração com um programa que gera código.
O aluno pode associar metaprogramação a testes automatizados, supondo que verificar o sistema com código de teste já é um programa tratando outro programa.
Por que engana: Confundir geração automática de código com execução ou modificação manual das descrições.
O aluno pode ler a alteração da regra no JSON como 'programar' o sistema e, por isso, achar que qualquer mudança feita pelo programador caracteriza metaprogramação, sem notar que o cenário destaca a ausência de reescrita manual.
O aluno pode confundir a fase de execução dos testes com a fase de geração de código, achando que rodar um programa sobre o sistema já é metaprogramação.
Metaprogramação ocorre quando um programa manipula, produz ou modifica código de outro programa. No cenário, o gerador interpreta uma descrição em JSON e escreve automaticamente código-fonte em Python e Java. A geração de arquivos de teste também envolve automação, mas não é o elemento solicitado, pois o comando delimita a transformação em código-fonte da aplicação.
Raio-X da questão
metaprogramação em computação
avaliacao
conceito de script e programação · estrutura de dados JSON
Estude o conceito de metaprogramação e geração automática de código.
Confundir geração automática de código com execução ou modificação manual das descrições.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Como equipes de desenvolvimento conseguem gerar módulos de software sem escrevê-los manualmente? Num projeto ágil, uma…
- Dados ilustrativos: 68% das empresas de software empregam geradores automáticos de código para acelerar a construção 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…
- Por que certas ferramentas de desenvolvimento conseguem gerar trechos de código automaticamente, adaptando-se a…
- 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
