他是这笔交易:我正在为我的毕业课程做一些关于.NET和Java平台的理论研究,我到了一个多云的地方:C#可以被认为是.NET Framework的一部分吗?与此类似,Java(编程语言)被认为是Java平台的一部分吗?
让我回顾一下事实:
.NET是ECMA-335标准规定的开发平台; 如果你愿意,它是这个标准的实现.然而,C#是另一个标准ECMA-334的实现,它清楚地表明它的实现不需要实现ECMA-335标准 - 微软的CLR(当很多人错误地称之为.NET时)它不仅仅是CLR).
此外,我们有Mono,ECMA-335的不同实现,C#也在其上运行(从我读过的所有内容来看,暗示Novell没有自己的ECMA-334实现,这是非常合理的),但C#不是Mono的一部分.
事实上,我在某处读到编程语言不是平台的一部分,但不幸的是我似乎无法找到源代码.
维基百科"计算平台"文章还指出编程语言是一个平台; 然而,如果你想要认真对待你的研究,那么Wiki几乎毫无价值.
微软似乎将C#作为.NET的一部分进行推广,但是.NET是一个多语言平台,并不是每种语言都支持/支持它?
到目前为止,我只谈到了.NET,但我还需要一个关于Java的答案.实际上,一般的回应是最好的.
那么,任何人都可以帮我把各个部分放在一起吗?参考资料非常感谢.
在另一个问题上,我发现有很多书可以解释CLR的内部工作原理,对于JVM来说,它们是不是在同一条线上?我的意思是,有规范,当然,但我的目标是更容易消化,我不打算毕竟构建一个Java编译器.
每个人似乎都注意到了,这取决于你的定义.
但是Ecma 334(和/或其他一些Ecma doc)也指定了MSIL(或CIL),这肯定是平台的一部分.
我认为C#不是平台的一部分,MS编译器只是通过输出MSIL来定位CLR.对于另一个托管或非托管平台的实现并不难.
Java通过同时拥有一个平台和一种叫做Java的语言来混淆这个问题,但是不难看出这种区别.
那么,语言可以成为平台的一部分吗?是的,请参阅MSIL.
但大多数语言(包括C#和Java)都不是.
许多语言(C,C++)都在积极努力跨平台移植.
| 归档时间: |
|
| 查看次数: |
381 次 |
| 最近记录: |