通用语言基础架构(Common Language Infrastructure,简称CLI)是一个开放的技术规范。它是由微软联合惠普以及英特尔于2000年向ECMA倡议的。通用语言基础架构定义了构成.NET Framework基础结构的可执行码以及代码的运行时环境的规范,它定义了一个语言无关的跨体系结构的运行环境,这使得开发者可以用规范内定义的各种高级语言来开发软件,并且无需修正即可将软件运行在不同的计算机体系结构上。国际标准CLI定义在ISO/IEC 23271,最新版本在2012年修定。[1] 通用语言运行库(CLR)则是微软对此标准(CLI)的实作。
概要
CLI标准包含以下更详细的规范
- 通用类型系统(Common Type System, CTS)
- 元数据系统(Metadata)
- 通用语言规范(Common Language Specification, CLS)
- 虚拟执行系统(Virtual Execution System, VES)
- 通用中间语言(Common Intermediate Language, CIL)
- 框架(Framework)
适合CLI规范的程序都是编译成通用中间语言,之后在执行过程中被虚拟执行系统的即时编译技术编译为机器码从而执行。
对CLI的实现
- Microsoft .NET Framework - 微软提供的面向Windows系统的实现,提供了各种各样的程序库,工具等。
- Microsoft Silverlight - 微软提供的一个跨平台实现,能同时在Windows和Macintosh操作系统上运行。
- .NET Compact Framework - 微软提供的面向便携式系统的商用实现。
- Microsoft XNA - 微软提供给游戏开发人员使用的一个CLI,面向的是XBOX和Windows Vista。
- Rotor - Microsoft Shared Source CLI(Rotor)微软开发出来的一个在Window,Mac OS X和FreeBSD上运行的一个CLI实现,但微软并没有授权用Rotor开发商业程序,只是一个学习工具。
- Mono - 由Novell赞助开发的开源实现,它能够应用于Linux,Mac OS等多种操作系统。
- dotGNU - dotGNU项目也是一个开源并且自由的实现。
参考资料
引用
来源
- Standard ECMA-335, Common Language Infrastructure(CLI). Ecma International. [2005-08-31].
- ISO/IEC 23271, Common Language Infrastructure. ISO. [2005-08-31].