In the last couple of decades, programming is gaining a lot of popularity and importance worldwide. Nowadays an average programmer can earn hundreds to ten thousand dollars per month and depending on the companies this number can cross the $100,000 mark. Impressive, isn’t it?
But what is programming and how it works? If you are a newbie or an experienced one in this field, or just a normal person, this question may have crossed your mind already.
Today, in this article I am going to answer these questions and together we are going to understand what programming is all about and we will dig it further to understand what is a programming language and how it works.
What is Programming?
We all know computers, mobiles and other machines do the task we give them to do. May it be a complex mathematical calculation or some search on the internet, they can carry out the task easily. But to do these tasks, they have to follow the set of instructions. And instructions mean that the machine needs to be fed with procedures with the help of which it can carry out the task given.
Let’s simplify this!
It will not take me more than a few words to convey that I need a glass of water, but that is true if I am telling an individual who understands my words. However, if that individual is not a human but a machine, computer, it will need me to describe and explain every layer of action that is involved in bringing the glass of water. The machine will have to be fed with commands like
- Stand up
- Walk towards the kitchen
- Find a clean vessel
- Find the source of drinkable water
- Fill the vessel with water
- Find a way to me without dropping or spilling the water.
In circumstances, even this set of instructions will not be sufficient. For instance, you will have to code the machine in a way it understands, what is “standing up”. It may also need specific instructions on how to walk. Further, you also have to define the fundamentals of kitchen hygiene, and before that, you have to program it so that it understands, what is ‘finding’. And it is not done yet, you still have to bring back the machine as you are thirsty and need water inside the glass and not on the floor!
But what if these instructions are not given in the right order? The machine will not bring out the desired result or it will break itself. Therefore the order of your instructions has to be clear and this is where the logic comes into play.
This whole process, setting the logic for a computer to understand its work and to get the best result from it, is what Programming is.
What is a Programming Language?
Computers do not understand human languages, they know only two digits – 0 & 1, known as binary numbers. Setting instructions for computers in binary numbers (machine-level language) is difficult and will need a lot of time and resources. Also, each computer has its own instructions, so if we write a code in the machine-level language for one computer, then it will not work for another computer.
So what is the better option? Programming Language!
A programming language is a set of specific instructions, syntax and commands that is easy to understand that helps a programmer to write their own code efficiently without getting worried about the binary numbers or machine-level language. Programming language compiles these codes into machine-readable object files which computers can understand and provides the output programmer is looking for.
In simple words, a Programming Language is a mediator between the human and the computer, which helps us to set the instructions for computers in a human-readable format.
Low-Level and High-Level Programming Languages
Programming languages can be break into two categories, Low-Level and High Level.
Low-level languages are also known as machine-level languages and can be understood easily by the machines. However, for humans, these languages are difficult to understand and debug. Therefore, the development and maintenance are high and complex. Another notable concern is the programs built-in low-level languages are not portable and can not be run on multiple platforms.
On other hand, High-level languages are human-friendly and are easy to understand, which makes them easy to debug and maintain. The most important feature of these languages is they can be run on multiple platforms, without changing a single line of code. High-level languages need a compiler or interpreter to translate the language in a machine-readable format.
Nowadays high-level languages are widely used by programmers.
Compiler and Interpreter
As I mentioned above, computers do not understand any language other than binary language. So, how they can understand a program built in a high-level language?
The answer is high-level languages have a compiler or interpreter that translates the source code into machine-readable object files. These files are in binary language, so they can be understood by computers and machines.
Difference between Compiler and Interpreter
The compiler goes through the complete source code of the program at once and translates it into machine-readable code. Depending on the size of the program this process can take a lot of time. However, the final executable code is much faster and can be run on multiple platforms.
The interpreter translates only one line of code (one statement) at a time into machine-readable code. It takes less time to analyze the source code, however, the time it takes to execute it is much more.
This is a simple overview for you to understand what programming is and how it works. If you have any doubts or questions, then please write them down in the comment section below. I will try my best to answer your queries ASAP!