C#程序运行原理

时间:2022-12-23 22:01:38
C#程序运行是不是这样,我们编写的C#代码由编译器先编译成中间代码,然后交给CLR,再由CLR调用框架库类,最后编译成计算机代码?
C#编译器是什么,JIT编译器是什么,CLR里的CTS是不是检查各个语言的数据类型并编译成通用类型,CLS又做了什么工作?

5 个解决方案

#1


帮顶 C#程序运行原理

#2


所有的代码先经过编译变成MSIL微软中间语言,然后经过编译变成机器语言。。。就知道这么多,给分吧

#3


该回复于2012-03-27 09:21:21被版主删除

#4


通过编译器生成中间代码,运行时生成本地代码执行......

#5


C#编译器将代码编译成IL,JIT将中间代码编译成目标机器代码。
CLR提供虚拟机支持,比如托管内存管理。
CLS什么也不做,因为它是语言规范,是一个约束语言开发商的规范标准。

在现在,C#编译器不一定将代码编译成IL,我们知道,LINQ其实就是编译器将代码编译成表达式树,再由LINQ提供程序在运行的时候翻译成SQL或者其他调用。
再比如Silverlight,同样是把代码编译成一个精简的CLR(Silverlight运行时库)的中间代码。

#1


帮顶 C#程序运行原理

#2


所有的代码先经过编译变成MSIL微软中间语言,然后经过编译变成机器语言。。。就知道这么多,给分吧

#3


该回复于2012-03-27 09:21:21被版主删除

#4


通过编译器生成中间代码,运行时生成本地代码执行......

#5


C#编译器将代码编译成IL,JIT将中间代码编译成目标机器代码。
CLR提供虚拟机支持,比如托管内存管理。
CLS什么也不做,因为它是语言规范,是一个约束语言开发商的规范标准。

在现在,C#编译器不一定将代码编译成IL,我们知道,LINQ其实就是编译器将代码编译成表达式树,再由LINQ提供程序在运行的时候翻译成SQL或者其他调用。
再比如Silverlight,同样是把代码编译成一个精简的CLR(Silverlight运行时库)的中间代码。