Sunday, September 11, 2011

A compiler as we all know is a program that translates source code into object code so that the code becomes executable, or we can say A compiler converts high level language code into a low level language code (assembly language).A compiler performs six major operations namely preprocessing, semantic analysis,lexical analysis, code generation, code optimization and parsing.

A compiler has basically 3 main parts. First is the front end that checks the semantics and syntax of the program and the errors are reported.Second, the middle end which does the optimization removing any unwanted or bad code.The last part is called the back end which translates the middle level intermediate representation or IR into the assembly language.

Processor registers are assigned. The back end also draws the schedule for the hardware units. Today we see a number of compilers available in the market like clang, Microsoft C, GCC, etc. C is still the favorite language of many programmers in the world. What makes it so special? It is its compiler. C compiler is better than any other language because it is small in size, so that you can execute a program everywhere. The C compiler is usually faster than any other language compiler. Furthermore there is no overhead byte code generated.

- You can use the dynamic C library directly. - Most of the C compilers include memory and bound checker.- Many C compilers are capable of running under windows XP and windows Vista and are also able to compile the command line.- Most of them support integrated environment.- C compilers are capable of handling multi- threaded programming and are good for exploiting dynamic parallelism which otherwise can make it difficult for passing messages. - C compilers are algorithmic in nature and provide a scheduler to schedule the performance of the programs.- They compile and link the codes very fast and they have a very powerful optimization technology.- They come with a library source which is complete and brows able.- They do extensive checking during the process of compilation. - Some C compilers are safe from the risk of pointers and are capable of fast prototyping of the programs.- They also don’t allow violation of array bonding. - They can be run as interactive or non- interactive phases.- They support enumerated data types, all data type variables like int, long, and float etc. some may also provide you with some sample programs to help you understand the features of the language.- They are perfect for parallel computing. Global vectorization and optimization is also supported. - These C compilers do inter procedural analysis. While doing optimization they give the user necessary feedback. They are able of transferring loops.- C compilers are capable of code generation and give optimal performance from the processors.- They simplify the execution thus, accelerating it. No limitations are imposed code size and optimization. They are very fast and accurate as compared to the compilers of other languages.- Latest compilers are capable of building internet, distributed and windows applications. The code generation includes compiling, assembling, linking, resource compiling and adding library files. - The integrated development includes editing, debugging, generating files and resource editing. - They come with documentation and user’s manual.- Most of the C compilers don’t come as freeware. - C compilers require Windows 95 and other latest versions for implementing command lines. - If a C compiler is supporting IDE, you need to have windows 2000 and following versions. The system should have a minimum of 32 MB of RAM and 500 MB of ROM.

We can say they are like many in one package which allow writing, developing, compiling, interpreting, assembling and debugging, and execution of the programs.