Language Levels
Computers only understand binary. To program a computer that program has to be written in binary (or at least translated to binary). This is called Machine Code and looks like 00000 00001 010001 100001. It is very difficult for humans to program in machne code - it is very easy to make mistakes, and it is difficult to read.
To solve this problem languages were developed that are easier for humans to understand. The ones closest to machine code are called Assembly Language. They look like ADD L2,R3, L6 . Whilst easier to understand than Machine Code, it is still difficult to write more complex programs
Machine Code and Assembly Language are called Low Level Languages.
High Level Languages are much closer to human speach. They include Python, C, Java etc. They are much easier for humans to program in but need translating into machine code.
There are pluses and minuses to both low level and high level languages
High Level Languages | |
Advantages | Disadvantages |
One instruction of high level code can represent many instruction of machine code (making it more efficient for writing complex programs) | Program has to be translated into machne code before the computer can understand it |
The same code will work for many different processors and machines | No real control over what the CPU is doing or how so program will run slower and be less efficient in terms of memory usage |
Code is easy to read, understand and change | |
Can store data easily (using variables, lists etc) without knowing how the devices memory is structured | |
Low Level Languages | |
Advantages | Disadvantages |
Commands in machine code do not need to be translated - they can run straight away | Usually only works on one type of machine |
Faster programs that are more memeory efficient due to the programmer being able to contok exactly what the CPU does | The programmers needs to know how the cpu is strcutured and how it manages memory |
One instruction in assembly language creates one instruction in machine code - making it more precise | Code is difficult to read, understand and change |