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
- Em um projeto de monitoramento de rios, uma boia computacional organiza leituras de sensores antes de enviá-las por…
- Uma biblioteca escolar recebeu caixas de livros doados para uma feira de troca. Para registrar os exemplares, a equipe…
- Um centro cultural público oferece inscrições on-line para atividades com critérios variados. Na oficina de teatro…
- Uma escola está testando dois protótipos de aplicativo para que estudantes consultem mudanças de sala, horários e…
- Uma secretaria municipal de educação está digitalizando pedidos de transporte escolar e de atendimento em contraturno…
- — O cartaz não pode sair duas vezes, pois a feira começa em uma hora — alertou a coordenadora do centro cultural. No…
🔎 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
