The '''Common Language Infrastructure''' (CLI) is used in the [[Microsoft]] [[.NET]] initiative as the basis for running programs written in different [[programming language | programming languages]]. Before this, each language required its own runtime module for the compiled programs to run - [[Visual Basic]] for example has required a component ''VBVM'' and, Visual C++ versions prior to Visual C++.NET useneeded a <i>''MSVCRT</i>'' [[DLL for the compiled programs to run]]. The common language infrastructure is an effort to unify the different runtime modules needed.
ItThe CLI uses a class library and [[virtual machine]], and a class librarythe [[Common Language Runtime]]. (see Microsoft site [http://www.microsoft.com/partner/products/microsoftnet/CLRTechPage.asp]CLR). ThereMany compilers are many compilers beingin developeddevelopment whichto produce code for this virtual machine. The code thesethe compilersvirtual generatemachine uses is expressed in a Common Intermediate Language (CIL), (also known as Microsoft Intermediate Language (MSIL)), a CPU-independent set of instructions that can be efficiently converted to native code. CIL can be thought of as a high level assembly language.
ItCLI seemsis thatintended inas thea futurecompetitor therefor will be at least two major [[virtual machine]] technologies competing (seethe [[Java virtual machine]]).