10011001011011101

Mean anything to you? No? It should not as I made it up! Binary is the language of computers. It uses binary to store data (as was seen in the AS exams). However it is also used to encode instructions. The CPU understands what binary instructions are and will be able to execute it. This is why instructions can be easily stored in memory. A set of instructions on a computer is known as an instruction set. Each type of processor will have its own instruction set.

Programming in binary is very difficult (and not advisable!). With each set of binary digits representing a different command it would be very difficult to remember them all. Also it would be very time consuming to look each command up on a table every time you wanted to code. What if you type in the wrong binary code? Instead of adding you may end up subtracting. Just think of the nightmare you would have to spot that error! (it is hard enough in Java!)

Programmers quickly realised that this was not a good way to write complex programs. As such they designed a language known as assembly. This assigned a mnemonic to each binary instruction to make it easier for a human to understand. Some examples are -

Assembly code also uses lables to represent variables and places to jump to. This is a lot easier for a programmer but it is still very long winded. Assembly is known as a low-level language as it is working at the same level as the CPU. A high-level language is more abstract and further away from how the CPU (and computer in general!) will work.

The translator which converts assembly code to binary is known as an assembler.This is never an interpreted language and will always produce a executable file. We do not say that an assembler is a compiler as it does not have to perform all of the same functions. This because it is already very close to machine code.