The are multiple ways to categorize code:
- source vs machine code
- high level vs low level code
Source code: human-readable code, which is the majority of code written by developers which needs to be translated to machine code for execution
Machine code: binary code read directly by the machine, specific to the target machine (e.g. machine code for Windows can’t run on Mac)
High-level code: portable code (not specific to any one machine, can be translated to machine code for any machine)
Low-level code: relatively non-portable code (generally specific and optimized for one machine, generally difficult to translate to machine code for any machine of choice)
Assembly code: a type of source code (human read-able) that is low-level (generally has strong correspondence to specific machine, i.e. not portable)