CIL 01: Common Language Infrastructure

CIL 01: Common Language Infrastructure#

大家好,我将会在未来发布一系列关于 CIL (Common Intermediate Language) 的讨论内容。我们将从 C# 语言的视角出发,逐步揭示 CLI 高级语言的运行秘密,并最终与大家共同掌握对 CIL 的基础读写能力。

作为前言,本文将首先讨论 CLI 及其定义。

什么是 CLI?#

CLI (Common Language Infrastructure) 即通用语言基础架构,是由 ECMA-335 定义的一套技术规范。

其旨在构建一个能运行多种高级语言所编写应用程序的环境,并确保无需针对特定平台重写代码,即可在各种不同的系统环境中运行。

目前较知名的 CLI 语言包括:

  • C#
  • F#
  • C++/CLI
  • PowerShell

CLI 的基础架构部分定义了三个核心组件:

  1. CLS (Common Language Specification):通用语言规范
  2. CTS (Common Type System):通用类型系统
  3. VES (Virtual Execution System):虚拟执行系统

事实上,遵循 CLI 这套标准的高级语言,通常会被编译为名为 CIL 的低级汇编语言,并被 VES 处理——无论是解释执行,还是生成目标平台的 Native 代码。

下面我们会更详细地介绍 CLI 的架构与工作细节。


1. CLS (Common Language Specification)#

作为一套规则集合,CLS 是为了语言互操作性而设计的。标准地说,CLS 定义了 CLI 语言互操作时的“安全子集”。