MSIL is the machine-independent language into which .NET applications are compiled using a high-level .NET language compiler (e.g., C# and VB.NET). The MSIL output is then used as the input of the JIT compiler, which compiles the MSIL instructions to machine language just prior to its execution.