Lesson 0: Why a Compiled, Low-Level Language?
Almost every popular language today (Python, JavaScript, Java) manages memory for you automatically and runs your code through a middle layer. That's convenient — until you hit two cases where this convenience simply isn't available: a program that must run on an embedded chip with only about 2 kilo
Most languages give you an automatic car that drives itself and handles everything under the hood on its own. C gives you a steering wheel, pedals, and a live engine display — more work, but you see exactly what's happening, and you can drive where an automatic simply doesn't fit.
- compiled language
- A language whose source code is translated in advance (compilation) into machine language, with no in-between layer running alongside the program checking every operation.
- low-level language
- A language close to the real structure of memory and the processor, so it exposes to the programmer details a high-level language hides automatically.
- manual memory management
- A model in which the programmer requests and releases memory themselves, with no background process (a garbage collector) doing it automatically.
- embedded system
- A tiny computer inside a device (a sensor, a smartwatch, an engine controller) with memory limited to just a few kilobytes.