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
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?
- A) Executar o mesmo algoritmo sem adaptações em ambas as ISAs.
- B) Operar usando somente instruções de máquina de alta performance.
- C) Descrever o algoritmo em pseudocódigo ou linguagem de alto nível e depois adaptar/compilar para cada ISA.
- D) Usar um interpretador que gera código nativo diretamente.
- E) Reescrever o algoritmo em Assembly para ambas as máquinas.
✅ Resposta correta: alternativa C
Resolução passo a passo
- 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
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.
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.
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.
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.
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
compatibilidade de algoritmos
avaliacao
compatibilidade de algoritmos · linguagens de programação
Revisar práticas de portabilidade de algoritmos entre diferentes plataformas.
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.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- O que caracteriza um algoritmo executável por diferentes máquinas?
- Projete um algoritmo passo a passo para transferir um número inteiro entre duas máquinas com conjuntos de instruções…
- O que se deve considerar ao desenvolver um algoritmo para uma máquina específica?
- Como as instruções são implementadas em máquinas diferentes?
- Um programador precisa criar um algoritmo que funcione em diferentes sistemas operacionais. Quais são os fatores que ele…
- Qual máquina pode executar o conjunto de instruções de um algoritmo de programação?
🔎 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
