CLI是一种虚拟机,它提供了一种独立于硬件和操作系统的执行环境。CLI定义了程序集的格式,程序集是一组相关的代码和资源的集合,可以在CLI上执行。程序集包括IL代码(Intermediate Language,中间语言)和元数据。IL代码是一种类似于汇编语言的低级语言,它是由高级语言编译器生成的。元数据是程序集的描述信息,包括程序集的名称、版本、作者、依赖关系等。
CLI还定义了程序集的加载和执行过程。程序集可以从本地文件系统、网络或其他存储介质加载。CLI会对程序集进行验证、编译、JIT(Just-In-Time,即时编译)和执行。CLI还提供了一组标准库,包括基本类型、集合、IO、网络和安全等方面的功能。这些标准库可以在CLI上执行,无需重新编译。
CLI支持多种编程语言,包括C、VB.NET和F等。这些编程语言都可以编译成IL代码,并在CLI上执行。CLI还支持跨语言调用,即不同编程语言之间的函数调用。CLI使用一种称为Common Type System(CTS,公共类型系统)的机制来实现跨语言调用。CTS定义了一组公共类型,这些类型可以在不同编程语言之间共享。
CLI还定义了一种称为Common Language Specification(CLS,公共语言规范)的机制,用于确保不同编程语言之间的互操作性。CLS定义了一组规则,这些规则包括数据类型、函数签名、异常处理等方面的规范。如果一个编程语言符合CLS规范,那么它就可以与其他符合CLS规范的编程语言互操作。
CLI是微软公司的.NET框架的核心组件之一。.NET框架是一种跨平台的开发框架,它可以在Windows、Linux和macOS等操作系统上运行。.NET框架包括CLI、C编译器、标准库和其他工具。.NET框架可以用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序和移动应用程序等。
相关标准
ISO/IEC 23270:2006——C编程语言标准
ISO/IEC 23272:2012——Common Language Infrastructure (CLI) Partitions I to VI
ISO/IEC 23277:2006——Visual Basic .NET编程语言标准
ISO/IEC 23278:2006——ECMA-335标准(CLI)
ISO/IEC 23279:2006——ECMA-334标准(C)