通用中间语言

通用中间语言（Common Intermediate Language，簡稱CIL，发音为"sill"或"kill"）是一种属于通用语言架构和.NET框架的低階（lowest-level）的人类可读的编程语言。目标为.NET框架的语言被编译成CIL，然后汇编成字节码。CIL类似一个面向对象的組合语言，并且它是完全基于堆栈的。它运行在虚拟机上，其主要的语言有C#、Visual Basic .NET(VB.NET)、C++/CLI以及J#。

在.NET语言的测试版中，CIL原本叫做微软中间语言，即Microsoft Intermediate Language，简称MSIL。由于C#和通用语言架构的标准化，在.Net开发平台下，所有语言（C#、VB.NET、J#、C++/CLI）都会被编译为MSIL，再由CLR负责运行，字节码现在已经官方地成为了CIL。因此MSIL有時仍會與CIL混用，特别是那些.NET语言的老用户。更详细的信息可以参看微软的说明。

概述
在编译.NET编程语言时，源代码被翻译成CIL码，而不是基于特定平台或处理器的目标代码。CIL是一种独立于具体CPU和平台的指令集，它可以在任何支持.NET framework的环境下运行。CIL码在运行时被检查并提供比二进制代码更好的安全性和可靠性。

即时编译（JIT）
即時編譯是指字节码在CPU执行时被立即转换成机器码。转换是在程序执行的过程中逐渐进行的。即時編譯技术提供了特定环境下的最佳化、运行时类型安全以及汇编验证。为此，即時編譯器检查程序集元数据中是否有非法访问和句柄的冲突。

NGEN（本机映像生成器）编译
本机映像生成器（Ngen.exe）是一个提高托管应用程序性能的工具。Ngen.exe创建本机映像（包含经编译的特定于处理器的机器代码的文件），并将它们安装到本地计算机上的本机映像缓存中。运行库可从缓存中使用本机映像，而不是使用实时编译器编译原始程序集。

元数据

执行CIL

参见

PyPy，可將Python編譯成CIL的一套編譯器

Phalanger（PHP into CIL compiler）

 参考文献 

 外部链接 
Hello world program in CIL
Kenny Kerr's intro to CIL (called MSIL in the tutorial) 
Common Language Infrastructure (CLI ) - Partition III - CIL Instruction Set
Tutorial including CIL (called MSIL in the tutorial) by Aleksey Nudelman
Common Language Infrastructure (Standard ECMA-335)
Speed: NGen Revs Up Your Performance With Powerful New Features -- MSDN Magazine, April 2005
C# and Common Language Infrastructure Standards”on MSDN

Category:汇编语言
Category:.NET编程语言
Category:程序设计语言
Category:.NET
Category:位元組碼