Thursday, December 4, 2014

Detailing Differenet form of Languages

 Computers are good at following instructions, but not at reading your mind.

0110000110100101010010010010010100
What is this ???
Is this an amount of money you have to spend to learn about programming or is this a number of days earth will exist further ???
Many of you are thinking like this. This is simply a garbage value to you, but unfortunately this is the only thing a computer understands.
Yes, only 0's and 1's. Using these two digits only computer does everything. It does not matter to a computer what purpose it is serving, may be its a secret bank information, may be a music, may be a picture to display or may be simply this article you are currently reading. A computer don't know what it does it just recognises that it has a string of bits to process.
If you provide the following to a computer, it will try to think (though it can't), what am I supposed to do with this ?
'add 4 with 2 and show me the result'

So, you have a question in your mind, 'Why the hell you told about high level languages which are in human readable format and also you have written a program that clearly is in english and yes it greets with 'Hello World' ?'

I am not mad and neither I am telling a lie. Yes, correct, both statements are 100% true.
You also keep remembering every time,
  • Computers can not recognise human readable language.
BUT

  • You can instruct computer in a human readable language.
Confused ???
Well I was also confused in my first class of basic computing.
Its not a magic, essentially the human readable language is translated to machine readable form, its basically another program which does this for you.
 A program to generate another program ?
Yes that's true. These programs are just like people who can speak more than one languages.
There are programs which sits on your computer whose basic responsibility is to translate the human readable high level language to a machine readable low level language.
There are many forms of these programs.
Mostly we deal with Compiler, Assembler, Linker, Loader and Interpreter.

On a broader view we can have 3 types of Language
  1. Machine Language - This is the only form of language computer can directly execute. These are fast and contains only 0's and 1's or On or Off switch. If you know about binary numbers, you can relate these. Only operations are performed using this language. This form is completely machine dependent. So you can write for a particular machine and port it to another to get the result.
  2. Assembly Language - An advanced version of machine language. With this you can have some more flexibility like ADD, SUB, CMP, JMP etc. Although it is advanced, you can only support different operations only and to write logic, you have to think of this logic as a set of operations. This is also machine dependent.
  3. High Level Language - This form is best suited for human. You can write logic, repeat operations, use information or whatever you want to. This is not machine dependent meaning you can write a program on a machine and run it on another. But the main drawback is this form is slow when compared to the former two. Cause this needs to be translated into the lowest level form.
So, I think you also think that you can instruct your PC to perform some operations for you although your PC is not able to understand what you are asking it.


Sounds interesting?
If it is a YES, you can keep on reading I have something more to tell you...

Prev     Next
Palash Kanti Kundu

No comments:

Post a Comment