Aula 0: Por que uma linguagem compilada e de baixo nível?
Quase toda linguagem popular hoje (Python, JavaScript, Java) gerencia a memória para você automaticamente e executa seu código através de uma camada intermediária. Isso é conveniente — até você esbarrar em dois casos em que essa conveniência simplesmente não está disponível. O primeiro: um programa
A maioria das linguagens te dá um carro automático que dirige sozinho e cuida de tudo debaixo do capô por conta própria. C te dá um volante, pedais e um painel do motor ao vivo — mais trabalho, mas você vê exatamente o que está acontecendo, e pode dirigir onde um automático simplesmente não serve.
- linguagem compilada
- Uma linguagem cujo código-fonte é traduzido antecipadamente (compilação) para linguagem de máquina, sem uma camada intermediária rodando junto com o programa verificando cada operação.
- linguagem de baixo nível
- Uma linguagem próxima da estrutura real da memória e do processador, por isso expõe ao programador detalhes que uma linguagem de alto nível esconde automaticamente.
- gerenciamento manual de memória
- Um modelo em que o próprio programador solicita e libera a memória, sem um processo em segundo plano (um garbage collector) fazendo isso automaticamente.
- sistema embarcado
- Um computador minúsculo dentro de um dispositivo (um sensor, um smartwatch, um controlador de motor) com memória limitada a apenas alguns kilobytes.