Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de…
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
Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de atendimento. Para isso, criou um script que recebe descrições textuais de operações, interpreta essas descrições e produz automaticamente módulos de código. No mesmo projeto, os desenvolvedores também definem variáveis de ambiente para selecionar configurações, utilizam uma biblioteca externa para validar formulários, escrevem funções que percorrem listas e organizam os arquivos do sistema em diferentes pastas. Essas práticas têm finalidades distintas: algumas configuram ou executam um programa, enquanto outra faz um programa manipular descrições para produzir novo código durante o desenvolvimento. Com base no texto, qual prática caracteriza metaprogramação, isto é, o uso de algoritmos como entrada ou saída de outro programa para produzir ou modificar código?
- A) Utilizar uma biblioteca externa para validar formulários do sistema
- B) Criar um script que interpreta descrições e produz módulos de código
- C) Organizar os arquivos do sistema em diferentes pastas do projeto
- D) Definir variáveis de ambiente para selecionar configurações do sistema
- E) Escrever funções que percorrem listas durante a execução do sistema
✅ Resposta correta: alternativa B
Resolução passo a passo
- A questão pergunta qual prática caracteriza metaprogramação, definida no enunciado como o uso de algoritmos como entrada ou saída de outro programa para produzir ou modificar código.
- O texto descreve cinco práticas. Apenas uma delas faz um programa manipular descrições para gerar novo código durante o desenvolvimento: o script que recebe descrições textuais de operações, as interpreta e produz automaticamente módulos de código. Nesse caso, o programa tem como entrada/saída outro código ou descrição de código, o que se encaixa exatamente na definição.
- Por isso a alternativa B é a correta, e concordo com o gabarito oficial.
- Por que as outras estão erradas:
- A) Usar uma biblioteca externa para validar formulários é reutilização de código em tempo de execução, sem produzir ou modificar código.
- C) Organizar arquivos em pastas é uma decisão de estrutura do projeto, não uma manipulação de código por programa.
- D) Definir variáveis de ambiente serve apenas para configurar o programa, sem gerar nem alterar código.
- E) Escrever funções que percorrem listas durante a execução é programação comum, na qual o código processa dados, sem gerar outro código.
💡 Dica: Identifique a prática que exemplifica metaprogramação, ou seja, geração automática de código por outro programa.
Alternativa por alternativa
O aluno confunde usar uma biblioteca externa com metaprogramação, achando que chamar código de terceiros já significa que um programa manipula código. Não percebe que a biblioteca apenas é executada para validar dados, sem produzir ou modificar código.
Por que engana: Confundir uso de bibliotecas ou variáveis de ambiente com metaprogramação, não reconhecendo a geração automática de código.
Essa prática caracteriza metaprogramação porque um programa recebe uma descrição de operações como entrada e gera código como saída. Assim, o programa atua sobre representações de outros programas ou de seus componentes, em vez de apenas executar diretamente uma tarefa do sistema.
O aluno associa qualquer atividade de organização do projeto a metaprogramação, pensando que mexer na estrutura de arquivos é modificar o programa. Não distingue organização de arquivos de geração ou alteração automática de código.
O aluno acredita que, como variáveis de ambiente mudam o comportamento do sistema, isso caracteriza modificar o programa. Não percebe que apenas selecionam configurações já existentes, sem gerar código.
O aluno entende que qualquer código que manipula listas em tempo de execução é metaprogramação, ignorando que o texto exige que o algoritmo atue sobre código para produzi-lo ou modificá-lo. Ele também desconsidera a expressão 'durante a execução', que indica processamento de dados e não geração de código.
Raio-X da questão
metaprogramação e geração automática de código
avaliacao
conceito de algoritmo · programação básica
Estude o conceito de metaprogramação e como algoritmos podem gerar código automaticamente.
Confundir uso de bibliotecas ou variáveis de ambiente com metaprogramação, não reconhecendo a geração automática de código.
ciencia_tecnologia
pensamento_critico
cotidiano
Questões parecidas com resolução
- Dados ilustrativos: em pesquisa com 50 startups de tecnologia, 30% relataram empregar técnicas em que componentes de…
- Quando comecei a desenvolver uma ferramenta para automatizar a geração de relatórios, implementei um programa que lê…
- Linhas de código percorriam as telas dos participantes durante uma maratona de desenvolvimento, enquanto vozes trocavam…
- Diante da crescente personalização de softwares, desenvolvedores criaram um sistema onde um programa lê descrições 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…
🔎 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
