Aula 3 do penúltimo módulo do curso:
"Utilizando linguagens de alto nível no desenvolvimento de software"
Em geral, nós que trabalhamos na construção de software acabamos utilizando mais comumente as linguagens de alto nível, como Python, Go, Java e C#. Essas linguagens têm maior abstração e são muito mais amigáveis para a construção de códigos.
Agora, surge a pergunta: como uma linguagem de alto nível, mais abstrata, pode ser traduzida para uma linguagem de máquina compreensível por um computador? Tudo começa no código fonte, que é escrito em uma linguagem de programação. Esse código precisa ser traduzido para ser interpretável e executável pelo hardware, que só entende linguagem de máquina. Existem duas maneiras gerais de fazer isso: utilizando um compilador ou um interpretador.
Linguagens de baixo nível são as melhores para sistemas embarcados porque estão próximas do hardware e do código de máquina, permitindo controle preciso sobre memória e processador. Isso garante maior eficiência no processamento e menor consumo de energia, essencial para dispositivos IoT com recursos limitados. No entanto, apresentam desafios como maior complexidade e dificuldade de manutenção, exigindo desenvolvedores especializados. Assembly é o principal exemplo dessa categoria.
Por que linguagens de baixo nível são as melhores para certos casos?
| Característica | Explicação |
|---|---|
| Proximidade com o hardware | Linguagens de baixo nível (como Assembly) estão próximas do código de máquina e do nível de compreensão do hardwere |
| Controle preciso | Permitem controle direto sobre memória e processador, manipulando registros e endereços de memória |
| Eficiência | São mais rápidas no processamento e aproveitam melhor a arquitetura do dispositivo |
| Consumo de energia | Garantem menor consumo de energia — essencial para dispositivos IoT com bateria |
| Recursos limitados | Ideais para sistemas embarcados (smartphones, relógios inteligentes, sensores IoT) que têm menos memória e processador menos potente |
A alternativa correta do exercício é:
"Linguagens de baixo nível, como Assembly, são essenciais para programar sistemas embarcados devido à sua proximidade com o hardware. Elas permitem um controle preciso sobre os recursos limitados dos dispositivos IoT, garantindo que as tarefas sejam executadas de forma eficiente e com o menor consumo de energia possível. No entanto, o uso dessas linguagens apresenta desafios, como maior complexidade e dificuldade de manutenção, exigindo desenvolvedores especializados."
Os desafios também são reais:
- Maior complexidade e dificuldade de manutenção
- Exige desenvolvedores especializados que conheçam a arquitetura da máquina.