MSIL is Microsoft intermediate language. When we compile a program in .net, the source code is converted into an intermediate language called Microsoft Intermediate Language. At this point the code is partially compiled and it cannot be run on the operating system. When we run the application this partially compiled code is compiled to machine specific by the Just In Time compiler present in Common Language Runtime using the operating system environment properties like CPU,OS etc