The CLI uses a class library and virtual machine, the Common Language Runtime (CLR). Many compilers are in development to produce code for this virtual machine. The code the virtual machine 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.
CLI is intended as a competitor for the Java virtual machine.