.NET的编译过程
公共语言运行库(CLR)是用于.NET框架应用程序的执行引擎。
<div>微软中间语言(<span style="font-size: 12px;">MSIL</span><span style="font-size: 12px;">)是与CPU无关的指令集,其中编译进了.NET框架程序。它包含在对象上加载、</span><span class="Apple-tab-span" style="font-size: 12px; white-space: pre;"> </span><span style="font-size: 12px;">存储、初始化和调用方法的指令。在与元数据及公共类型系统组合后,MSIL允许真</span><span class="Apple-tab-span" style="font-size: 12px; white-space: pre;"> </span><span style="font-size: 12px;">正的语言间集成。在执行之前,MSIL将转换成机器码,并且不被解释。</span></div>
元数据由编译器生成并包含源代码中所有元素的吸纳关系描述。
元数据可以被定义成数据的数据,因为元数据包含了其他高级语言源代码如此详细的信息,所以把它当成当前语言来准确使用变成了可能。
<div><span style="font-size: 12px;">即时编译器</span><span style="font-size: 12px;">(</span><span style="font-size: 12px;">JIT</span><span style="font-size: 12px;">)</span><span style="font-size: 12px;">的任务是把MSIL高效的编译为专用于OS和目标机器结构的本机代码。这样OS才</span><span class="Apple-tab-span" style="font-size: 12px; white-space: pre;"> </span><span style="font-size: 12px;">能够执行。Just-In-Time反映了MSIL仅在需要时才编译的事实。</span></div>