C#是如何编译的?

C#是如何编译的?
 
.NET的程序是由多种语言编译的,如C#、VB、C++、J#等,但是最后都会由各自的编译器编译为一致的中间语言(IL)。最后由【CLR提供运行环境】,将中间语言编译为【机器码】,供CPU执行。
 
为了尽量减少中间代码编译为机器代码的性能损失,中间语言采用【即使编译】,也被称为【JIT编译】。这种编译方式只编译调用的代码部分,而并非全部编译程序中的所有代码,编译过的部分会存储在内存中,下次执行时不需要重复编译,当退出程序时,已编译的部分代码才会被清除。这种策略极大的降低了中间代码的性能损失,使程序灵活性和性能相权衡的较佳方案。
.NET Framework的核心是CLR【公共语言运行库】,CLR是.NET程序的运行库。中间语言需要在CLR中运行并转码为机器码,所以.NET程序必须依赖.NET Framework。
 
.NET Framework由【公共语言】运行时(CLR)和基类库(BCL)组成,前者提供运行库环境,而后者提供丰富的类库,适合全部.NET编程语言调用。基类库不仅封装了各种类型,而且还支持很多服务
 
.NET程序的中间语言(IL)也被称为托管代码,优点:
 
1. 平台无关性。
 
2. JIT性能优化。
 
3. 语言互操作性。支持多种语言编写程序,并编译为中间语言。
 
 
posted @ 2019-09-27 23:19  gaoyang'Blog  阅读(1601)  评论(0编辑  收藏  举报