2010-07-18 70 views
2

.NET虚拟机是否编译CIL字节码(然后在最低级别执行代码 - CPU汇编程序),还是解释器(读取以下指令并执行它们)?.NET VM是编译器还是解释器?

+0

我问了一个关于Java虚拟机的类似问题。似乎可以是一个或另一个,或者甚至两个。 – umlcat 2012-06-19 17:40:44

回答

6

请问.NET的Virtual Machine 编译CIL字节码(然后 执行最低级的代码 - CPU汇编)

是的,这是CLR的组件调用JIT(即时编译)将中间语言代码(由编程语言的编译器发出)转换为机器代码。

动态语言中没有解释器,比如Ruby,PHP,Python。


UPDATE:

如由于除了在.net 4 DLR由@Nick Craver评论中指出带来的CLR使用动态语言概念的可能性。

+1

我不清楚答案的第二部分,因为在.Net 4中添加DLR,我可能是错的......但我认为这个陈述需要围绕它的一些注意事项。 – 2010-07-18 11:49:01

+0

@尼克关于DLR的好处。 – 2010-07-18 11:52:56

+0

.NET框架和.NET Compact框架都可以进行JIT编译。 .NET Micro框架使用解释(http://en.wikipedia.org/wiki/.NET_Micro_Framework)。 – Steven 2010-07-18 12:04:08