公共语言规范(Common Language Specification,CLS)是由一组结构和限制规则构成的,用做库编写者和编译器编写者的指南。这样任何支持CLS的语言都可以完全使用库,并且使这些语言之间可以相互集成。公共语言规范是公共类型系统的子集。对于那些需要编写代码供其他开发人员使用的应用程序开发人员而言,公共语言规范也非常重要。如果开发人员遵循CLS规则来设计公共访问的API,那么就可以在支持公共语言运行时的任何其他编程语言中很容易地使用这些API。
.NET语言的编译分为两个阶段。第一个阶段是将高级语言编译成一种称做IL中间语言,与高级语言相比,IL更像是机器语言,然而IL却包含一些抽象概念(比如:类,异常),这也是这种语言被称为中间语言的原因。.NET框架中的中间语言称为MSIL,即“微软中间语言“,它是由一组特定的指令组成的,这些指令指明如何执行代码。
由于机器的CPU只能执行本地汇编语言,而不是IL,因此进一步将IL编译成汇编语言的工作(也就是第二阶段)需要在运行时进行,这个过程由即时编译器(Just In Time,JIT)完成。为了充分利用各种CPU的独特功能,进而提高系统的性能,Microsoft公司为每一种目标CPU版本提供了不同版本的JIT。
中间语言的主要特征如下:
- 面向对象和使用接口
中间语言在设计时就是为了实现某些特殊的编程方法,这表示面向它的语言必须与编程方法兼容,Microsoft为IL选择的是传统的面向对象的编程,具有类的单一继承性。除了传统的面向对象编程外,中间语言还引入了接口的概念,它们是在带有COM的Windows操作系统下实现某种特