What's the differnece between CIL and MSIL?
I was recently asked what the difference between CIL and MSIL is… the short answer is not much. They both describe the underlying CPU-independent instruction set the CLR executes after a high level language (C#, VB, C++, Python, Ruby, Pascal, etc) has compiled your source code. The difference between them is the exact version you are referring to.
CIL - Common Intermediate Language - is the term used in the International Standard.
MSIL - Microsoft Intermediate Language - is the product term for the Microsoft implementation of that standard.
Clear as mud?
Comments
- Anonymous
September 20, 2005
So, are there functional differences? Does MSIL have instructions CIL doesn't, etc.? - Anonymous
September 20, 2005
There are functional differences in the IL as defined by the CIL standard and what Microsoft currently uses (at least, best that I can tell). Takes generics for example; to quote Mr. Juval Lowy, "In .NET 2.0, generics have native support in IL (intermediate language) and the CLR itself." He goes on to describe the differences.
Source: An Introduction to C# Generics, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/csharp_generics.asp.