GeraProva GeraProva Provas com IA para professores do Brasil
Computação1º anoBNCC EF15CO05Média⏱ curto

Ao portar um algoritmo entre duas máquinas com instruções diferentes (por exemplo, microcontrolador e PC)…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO05

Codificar a informação de diferentes formas, entendendo a importância desta codificação para o armazenamento, manipulação e transmissão em dispositivos computacionais.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Ao portar um algoritmo entre duas máquinas com instruções diferentes (por exemplo, microcontrolador e PC), qual prática técnica garante maior compatibilidade?

  1. A) Executar o mesmo algoritmo sem adaptações em ambas as ISAs.
  2. B) Operar usando somente instruções de máquina de alta performance.
  3. C) Descrever o algoritmo em pseudocódigo ou linguagem de alto nível e depois adaptar/compilar para cada ISA.
  4. D) Usar um interpretador que gera código nativo diretamente.
  5. E) Reescrever o algoritmo em Assembly para ambas as máquinas.

✅ Resposta correta: alternativa C

Resolução passo a passo

  1. O problema é que microcontroladores e PCs usam conjuntos de instruções (ISAs) diferentes, então um binário de máquina escrito para um não roda no outro. Para portar um algoritmo com segurança, o caminho é separar a lógica da implementação específica de cada máquina. Passo 2: A alternativa C faz exatamente isso: descreve-se o algoritmo em pseudocódigo ou em linguagem de alto nível, que não depende de nenhuma ISA, e depois adapta-se ou compila-se esse código para a ISA de cada máquina. A lógica fica única e o que muda é só a tradução final, por isso é a prática que mais garante compatibilidade. Passo 3: A alternativa A está errada porque código de máquina executado sem adaptação só funciona na ISA para a qual foi gerado; ISAs diferentes não entendem as mesmas instruções. Passo 4: A alternativa B está errada porque usar apenas instruções de alta performance não resolve a incompatibilidade, pois instruções são específicas de cada processador e ainda assim precisariam ser reescritas para a outra máquina. Passo 5: A alternativa D está errada porque, embora um interpretador possa abstrair a ISA, ele não é a prática técnica geral para garantir compatibilidade no sentido pedido, e a ideia de gerar código nativo diretamente da forma descrita não corresponde ao papel típico de um interpretador, que normalmente executa o código sem traduzi-lo para código nativo. Passo 6: A alternativa E está errada porque reescrever em Assembly para cada máquina cria código dependente da ISA, exigindo um trabalho separado e propenso a erros para cada arquitetura, o oposto de portabilidade. Passo 7: Conclusão: a resposta correta é a C, que coincide com o gabarito oficial.

💡 Dica: Considere as diferenças de arquitetura entre as máquinas.

Alternativa por alternativa

A Erradaerro: Conceitual

Acredita que o mesmo código de máquina ou o mesmo programa roda em qualquer processador desde que a lógica esteja correta. Não percebe que cada ISA tem seu próprio conjunto de instruções e codificação.

B Erradaerro: Conceitual

Supõe que escolher instruções mais rápidas ou potentes melhora a compatibilidade. Confunde desempenho com portabilidade, sem perceber que instruções de alta performance são específicas de cada máquina.

C Correta

Pseudocódigo separa a lógica do algoritmo das instruções de máquina, permitindo implementar versões que respeitem limitações de instruções, tipos e recursos de cada ISA.

D Erradaerro: Conceitual

Acredita que um interpretador resolve a compatibilidade gerando diretamente código nativo para cada máquina, sem etapa de adaptação. Confunde a função de interpretar com a de compilar para cada ISA.

E Erradaerro: Senso comuma que mais engana

Pensa que o Assembly é a forma mais segura de programar qualquer máquina porque fica 'mais perto do hardware'. Não percebe que o Assembly é específico de cada ISA e exigiria reescrita separada para cada máquina.

Por que engana: O aluno pode confundir a necessidade de reescrever o algoritmo em Assembly com a adaptação em pseudocódigo, acreditando que Assembly é sempre a melhor opção para compatibilidade.

Raio-X da questão

Dificuldade Média
Bloom Aplicar
Leitura medio
Discriminação medio
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ direta🧩 progressao
🎯 Conceito central

compatibilidade de algoritmos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

compatibilidade de algoritmos · linguagens de programação

📚 Reveja

Revisar práticas de portabilidade de algoritmos entre diferentes plataformas.

⚠️ Erro mais comum

O aluno pode confundir a necessidade de reescrever o algoritmo em Assembly com a adaptação em pseudocódigo, acreditando que Assembly é sempre a melhor opção para compatibilidade.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Instrução de máquina

🔎 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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.