以前搞c/c++.最近接触C#.
相比c++,C#语言的简洁性非常好。但有个问题,请解释:
C#为什么要形成IL中间代码,而不是直接生成机器代码。
这IL中间代码,除了跨平台,还有别的作用吗?说支持跨平台,但到目前为止.net仍然只是在WINDOWS平台上应用。
难道以牺牲性能为代价,来支持这个不考普的需求??刚刚接触c#,可能有些东西没理解透。请高手解悟!
相比c++,C#语言的简洁性非常好。但有个问题,请解释:
C#为什么要形成IL中间代码,而不是直接生成机器代码。
这IL中间代码,除了跨平台,还有别的作用吗?说支持跨平台,但到目前为止.net仍然只是在WINDOWS平台上应用。
难道以牺牲性能为代价,来支持这个不考普的需求??刚刚接触c#,可能有些东西没理解透。请高手解悟!
比如你可以写一个的PHP.NET 编译器
>>比如你可以写一个的PHP.NET编译器你是指不管什么语言,都可以编译成统一的IL中间语言。
生成统一的IL便于CLR运行时解释运行(不管来自什么语言)。但还没有回答我的问题:为什么要生成统一的IL,而不是直接生成机器码?
这样效率会很高的。
但“JIT自己根据实际平台来做编译”,则每次运行时都要作。是否太不划算了?也许我理解有误,但觉得以上两点理由并不充分。微软这么花力气作,一定还有更充分得理由。
.NET是Microsoft面向XML Web服务的平台,这种下一代的软件将使用一种统一、个性化的方式将我们的信息、设备和人员紧密联系在一起。请阅读循序渐进的.NET介绍了解它的全貌。
(以上信息来自http://www.microsoft.com/china/net/overview.mspx)
什么时候MS用C#编WORD了,才能说明“差距不大”。
而C#经编译后形成的是中间代码,不可以在本地机器上直接执行。必须经过CLR转换成本地代码后才能执行。
这样,中间码可以顺利通过防火墙。而且,安全性又有CLR来保证。大家觉得是这样吗?欢迎继续讨论...
2、多语言互操作,C#、VB.Net、C++、J#,还可以集成其他语言。
3、效率还可以,现在硬件便宜(很多客户怎么说的,呵呵)