- CTS(The Common Type System):符合CLI规范的高级语言都必须有的类型,包括相关操作。
- Metadata:独立于具体语言的程序元信息,以便于在不同工具和程序员间交流和共享。
- CLS(Common Language Specification):符合CLI规范的高级语言必须遵循的一系列规则,以保证不同语言间的顺利通信。
- VES(Virtual Execution System):VES是CLI规范中关于该infrastructure动力部分的规范,它描述了一个像虚拟机(Virtual Machine)一样的编译器,如何利用元信息,在运行时将用不同语言写成的程序(实际上这时已经是CIL)编译结合成本地机器码。所以可以想像,VES是与机器架构相关的(artechiture or platform specific),不同的平台,得有不同的VES实现,从而保证所有语言代码的可移值性(portability)。
CLR(Common Language Runtime)是微软的CLI实现,实际上就是.NET中的虚拟机,模拟一个中立的平台;它不再是规范(specification)或标准(standard),而是一个具体实施(implementation)。当不同的计算机平台包含了相应的CLR环境(environment)后,任何用基于.NET的高级语言如C++和Delphi所编写的代码只需要以CLR为目的环境,就能免去为不同平台重写不同本地代码(native code)的麻烦,从而方便移值。基于CLR的C++叫做C++/CLR,与ANSI/ISO C++相对而言。
CIL(Common Intermediate Language)是一种平台无关的中间语言(intermediate language),实际上它和汇编语言(assembly language)很像,即与机器语言(machine language)一一对应,只不过已经从具体的硬件平台抽象出来了,并且具有一定OOP的特性。它是最低层的可读代码。其代码都是一种叫bytecode的东西,即以opcode的形式(机器最原始的指令,由一个字节表示)实现所有指令(instruction)。基于.NET的高级语言都将被编译为CIL,然后汇编为bytecode。CIL有时也被称为MSIL(Microsoft Intermediate Language或Machine Symbolic Intermediate Language)。
所有评论(0)