Central to the .NET Framework is its runtime execution environment, known as the Common Language, Runtime (CLR) or the .NET runtime. Code running under the control of the CLR is often termed managed code.
However, before it can be executed by the C.L.R, any source code that you develop (in C# or some other language) needs to be compiled. Compilation occurs in two steps in .NET:
- Compilation of source code to IL.
- Compilation of IL to platform-specific code by the CLR.
This two-stage compilation process is very important, because the existence of the IL (managed code) is the key to providing many of the benefits of .NET.
Microsoft Intermediate Language shares with Java byte code the idea that it is a low-level language with a simple syntax (based on numeric codes rather than text), which can be very quickly translated into native-machine code. Having this well-defined universal syntax for code has significant advantages:
platform independence, performance improvement, and language interoperability.