如果你把你的源代码编译成受控代码,编译器将把你的源代码 转换为Microsoft中间语言(MSIL),这种代码将是不依赖于CPU的 ,而且能够高效的转换为本地代码。MSIL拥有众多的指令,像 loading、storing、initializing以及基于对象的方法调用还有算 术逻辑运算、流控、直接内存存储和异常处理等。在代码执行之前 ,必须通过JIT编译器将MSIL转换为基于特定CPU的代码。由于运行 时为它所支持的每一种计算机体系结构都提供了一到多个JIT编译 器,同样的MSIL指令集合能够被JIT编译并且在所有支持的体系结 构上面执行。 当编译器产生MSIL的同时,也产生元数据,元数据描述了代码 中的类型,包括每一种类型的定义、每一种类型成员的签名、代码 引用的成员以及在执行时运行时用到的其它数据。代码和元数据都 包括在一个PE文件中,这个PE文件基于并且扩展了已发布的 Microsoft PE以及曾经用于执行信息的通用对象文件格式 (Common Object File Format)(COFF)。PE这种文件格式,将有 利于帮助操作系统识别CLR镜像。在文件中和MSIL一起存在的元数据 将使得你的代码是自描述的,也就是说不再需要类型库或者IDL。在 执行过程中,运行是根据需要从文件中定位和提
|