Compiler : a Compiler is a program that translates source code from a high-level programming language to a lower level language to create an executable program.
TYPES OF COMPILERS:
Based on the specific input it takes and the output it produces, the Compilers can be classified into the following types;
Traditional Compilers (C, C++, Pascal): These Compilers convert a source program in a HLL into its equivalent in native machine code or object code.
Interpreters (LISP, SNOBOL, Java1.0): These Compilers first convert Source code into intermediate code, and then interprets (emulates) it to its equivalent machine code.
Cross-Compilers: These are the compilers that run on one machine and produce code for another machine.
Incremental Compilers: These compilers separate the source into user defined–steps;
Compiling/recompiling step- by- step; interpreting steps in a given order Converters (e.g. COBOL to C++): These Programs will be compiling from one high level language to another.
Just-In-Time (JIT) Compilers (Java, Micosoft.NET): These are the runtime compilers from intermediate language (byte code, MSIL) to executable code or native machine code. These perform type –based verification which makes the executable code more trustworthy .
Ahead-of-Time (AOT) Compilers (e.g., .NET ngen): These are the pre-compilers to the native code for Java and .NET
Binary Compilation: These compilers will be compiling object code of one platform into object code of another platform.