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 的基础架构部分定义了三个核心组件:
- CLS (Common Language Specification):通用语言规范
- CTS (Common Type System):通用类型系统
- VES (Virtual Execution System):虚拟执行系统
事实上,遵循 CLI 这套标准的高级语言,通常会被编译为名为 CIL 的低级汇编语言,并被 VES 处理——无论是解释执行,还是生成目标平台的 Native 代码。
下面我们会更详细地介绍 CLI 的架构与工作细节。
1. CLS (Common Language Specification)#
作为一套规则集合,CLS 是为了语言互操作性而设计的。标准地说,CLS 定义了 CLI 语言互操作时的“安全子集”。