Software vs Hardware

Operating System – Supervising program manages the resources of a computer for the benefit of the programs that run on that computer

Compiler – A program that translates high-level language statements into assembly language statements

Assembler – A program that translates a symbolic version of instructions into the binary version

In order to communicate to hardware, you need to send electrical signals to it. The signals are categorized by on and off or 1 and 0. Moreover, hardware has a two letter alphabet with each letter as a binary digit or bit. Using bits for both instructions and data is a foundation of computing!

Even though hardware speaks in binary, humans do not which creates a barrier between programmers and their hardware. As a result, an assembler was introduced to translate machine instructions to binary.