Tuesday, February 26, 2008

Compiler compiled to make my compiled life complicated

I browsed through Wikipedia.org and found the definition of computer, it said: A computer is a machine that manipulates data according to a list of instructions.
This was a bit confusing to me, since i could not digest the term “manipulates data according to a list of instructions”. So i went on to get a peek-a-boo about the evolution of computers, i found that computers has come a long way, from the stone men using stones and marking symbols to calculate to ABACUS to the presently and widely used windows run computer (MAC, LINUX etc are also included in the list) to NASA run super-computer CRAY.
But this actually didn’t answer my question, how could computer manipulate data according to a list of instructions that is given in Human language which itself contradicts the statement that computers cannot understand human language.
Finally i discussed the same issue with my “IT specialist friends” and discovered that, in the computer world, the human language is known as High Level Language (HLL) and the language that the computers understand –set of binary numbers (0’s and 1’s) is known as Low Level language (LLL).
Therefore to convert the HLL to LLL we require something called a COMPILER. And the reverse process is called as DECOMPILER.
Describing a compiler as described in a known site: It is a computer program (or set of programs) that translates text written in a computer language (the source language) into another computer language (the target language). The original sequence is usually called the source code and the output called object code. Commonly the output has a form suitable for processing by other programs (e.g., a linker), but it may be a human-readable text file.
Putting the same in simpler words i would say, a compiler is a program that is used to convert the text language to machine language.
Going back to history, during the 50s, machine-independent programming languages were first proposed. Subsequently, several experimental compilers were developed. The A-0 system was the first compiler written by Grace Hopper, in 1952, for the A-0 programming language. The FORTRAN team led by John Backus at IBM is generally credited as having introduced the first complete compiler, in 1957. COBOL was an early language to be compiled on multiple architectures, in 1960. Early compilers were written in assembly language.
The C compiler, developed by Dennis Richie is considered as the complete compiler. The first C compiler is written using X286 assembler, which is designed for a 16 bit processor. Once the basic module of compiler has been developed, further development of the language was done using C language itself!



Source: Wikipedia.org, Blogspot.com and Informal Discussions with my “IT specialist friends”.