Introducing Microsoft Intermediate Language
Microsoft Intermediate Language is a language that is not machine dependent and
is very popular today. You can use any of the high-level .NET language compilers
such as C# or VB NET compilers for compiling your .NET applications and get them
converted into Microsoft Intermediate Language. The so obtained Microsoft Intermediate
Language instruction set can be used as an input in JIT (Just In Time) compiler.
The job of JIT compiler is to compile the Microsoft Intermediate Language instructions to machine language before its execution. You can also use the Native Image Generator Utility for converting your Microsoft Intermediate Language instructions to the original object codes of native machine. Any .NET Framework SDK kit will also have one Intermediate Language Disassembler program that can be made use for reading the codes of Microsoft Intermediate Language and you can also open and view any of the executable .NET files with this Intermediate Language Disassembler program.
The Microsoft Intermediate Language comes with a complete set of instructions with which you can load, initialise, store, and use call methods with ease. Further the instruction set that comes with the Microsoft Intermediate Language can assist you to carry out operations that are logical and arithmetical in nature, have an effective control over the flow, have access directly to the memory area, efficiently handle exceptions, and other operations.
Using JIT compiler you have to first convert your Microsoft Intermediate Language to your CPU specific code before running them. One or more computer architecture specific JIT compilers are provided by Common Language Runtime that can help you in compiling your Microsoft Intermediate Language instructions and run them in any architecture that Common Language Runtime supports.
During any compilation, the compiler will produce metadata along with Microsoft Intermediate Language. Metadata is the compiled version of your Microsoft Intermediate Language that carries all the descriptions and types of your codes, holds the various signature types, details about your code references, and other relevant data that the runtime may use at the time of actual execution.
The installable or the portable executable file will contain all the metadata that are required by runtime version and the Microsoft Intermediate Language codes and the common object file format will be made use for creating any such portable executable file. The operating system can easily recognise the common language and the images from the common object format runtime file and hence there will not be any need for a separate library or any Interface Definition Language (IDL).
With the compiled version of metadata along with the presence of Microsoft Intermediate Language code, it is easy for the system to execute the instruction from the extracted runtime version and this particular feature make the need for additional libraries or any IDL obsolete.