A Beginner's Guide to Speaking to a Computer
In programming, abstraction means hiding complex reality while exposing a simpler interface. High-level languages offer high abstraction, letting you focus on solving problems, much like driving a car without needing to understand its engine. Low-level languages are closer to the hardware, requiring a deeper understanding of the machine's inner workings.
This pyramid illustrates the levels of abstraction. High-level languages are furthest from the hardware, while low-level languages are closest.
These languages provide little to no abstraction from a computer's processor. They include Machine Code (binary) and Assembly Language (mnemonics). They are designed for speed and direct hardware control.
The radar chart shows that low-level languages excel in execution speed and have direct hardware control, but are not very human-readable.
Designed to be easy for humans, these languages use English-like syntax. Examples include Python, C#, and JavaScript. They prioritize readability and portability over raw speed.
In contrast, high-level languages are highly readable and hardware-independent, but this abstraction results in slower execution compared to low-level code.
Processors only understand machine code. Translators—Compilers, Interpreters, and Assemblers—are special programs that convert human-readable source code into the binary instructions the hardware can execute. This flow chart shows how source code becomes an executable program.