公共语言基础结构
公共语言基础结构
CLI的定义
C#不会直接生成机器码,而是生成公共中间语言(Common Intermediate Language,CIL),之后CIL被转换成处理器能理解的机器码。
但如果要执行代码,仅仅转换为机器码是还不够的。还需要在一个代理的上下文中执行。负责C#程序执行的代理就是虚拟执行系统(Virtual Execution System,VES),也称为运行时。它负责加载和运行程序,并在程序执行时提供额外的服务(比如安全性、垃圾回收等)。
CIL和运行时规范包含在一项国际标准中,即公共语言基础结构(Common Language Infrastructure,CLI)。
CLI标准包含以下更详细的规范:
- 虚拟执行系统(VES,也就是运行时)
- 公共中间语言(Common Intermediate Language,CIL)
- 公共语言规范(Common Language Specification, CLS)
- 公共类型系统(Common Type System,CTS)
- 元数据(Metadata)
- 框架(Framework)
CLI术语缩写
缩写 | 定义 | 说明 |
---|---|---|
.NET | 无 | 这是微软所实现的CLI,其中包括CLR,CIL以及各种语言——全部都相容于CLS |
BCL | 基类库 | CLI规范的一部分,定义了集合、线程处理、控制台以及用于生成几乎所有程序所需的其他基类 |
C# | 无 | 一种编程语言。注意C#语言规范独立于CLI标准,也得到了ECMA和ISO标准组织的认可 |
CIL(IL) | 公共中间语言 | CLI规范中的一种语言,为可在CLI的实现上执行的代码定义了指令。有时也称为中间语言(IL)或Microsoft IL(MSIL),以为区别于其他中间语言 |
CLI | 公共语言基础结构 | 这个规范定义了中间语言、基类和行为特征,允许实现人员创建虚拟执行系统和编译器,确保不同的源语言能在公共执行环境的顶部进行互操作 |
CLR | 公共语言运行时 | 微软根据CLI规定的定义实现的运行时 |
CLS | 公共语言规范 | CLI规范的一部分,定义了源语言必须支持的核心功能子集。只有支持这些特性,才能在基于CLI规范而实现的运行时中执行 |
CTS | 公共类型系统 | 一般要由CLI相容语言来实现的一个标准,定义了编程语言向模块外部公开的类型的表示及行为。包含如何对类型进行合并以构成新类型的一些概念 |
FCL | .NET Framework类库 | 用于构成Microsoft .NET Framework的类库,包含微软事件的BCL以及用于Web开发、数据库访问等的一个大型类库 |
VES | 虚拟执行系统 | 作为代理负责管理为CLI编译的程序的执行 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 好饿殿の小屋!