What are different levels of programming languages?
We all know that computers are nothing but machines only.
At the very low level, computers are built using tiny chips which are called transistor. A transistor has two state, on and off. So computer can understand only on and off of their transistors.
We perform various logics by using those binary on and off states.
Say we may have written a program to add two numbers and show the output on screen. How do computer recognise these two numbers? Like we can? No, computer can only understand on and off. So we need some way to tell computers on and off format by transforming the code we have written into series of on and off.
These on and off are represented by using 1 and 0 in code.
We may directly write that program using 1 and 0 or we can write the program with some high level language and transform that program to series of 1 and 0 so that computer can understand.
Even the addition, subtraction or any other operation need to be converted to series of 1 and 0.
If we write program using some high level language then the program need to convert to series of 1 and 0 by using some other software. Which are called compiler or interpreter.
At the very low level, program can be written using 1 and 0 how machines actually understand. This is called machine language.
Machine language instructions are specific to particular machine model. As they directly work on the hardware level.
We have programming languages in different levels.
So what are the levels mean? In simple term I can tell that the higher the level is, the language is far abstracted from the machine language or 1/0 code which means the language is more human readable and more abstract.
And why there are different programming levels?
At the core level machiens/computers work on binary 1 and 0.
If we needed to code in 1 and 0 then it would have been very difficult to write code and time consuming.
That’s how different levels or abstractions came here.
So what if we code in more human readable text and then somehow convert to binary 1 and 0 for machines?
At the above of machine language, Assembly is the language sitting on.
In assembly language, machine instructions are abstracted using few instructions set like Add, Sub, Set etc instead of having them in pure machine language.
So assembly programmers can write code in some readable format than machine language and then compile to machine instructions in 1 and 0 which then machine can translate to perform accordingly.
Then we have higher level languages like C, C++, Java, Python, Go, Scala etc etc which we write in more readable format and then compile or interpret in machine language instructions.
Then we have languages which are compiled and we have languages which are called interpreted.
Let’s stop this discussion here and we will discuss separately in another post what are compiled and what are interpreted languages mean.