Sun提供的Java虚拟机是用Java编写的吗?.Net Framework是用C++还是C#编写的?

3
我正在谈论这些平台的主要实现平台。

你为什么对这个感兴趣?我只是好奇。 - ant
3
因为我很好奇 :). - Rohit Banga
部分重复的内容,来源于https://dev59.com/uHRC5IYBdhLWcg3wFdJx。 - Håvard S
1
我想问的是,通过获取那些信息你将获得什么好处,假设它是用编程语言X实现的,那么从获取那些信息中你能得到什么好处? - ant
哦,我现在还没有这样的想法。 - Rohit Banga
我认为对于好奇心没有问题(虽然我认为只要稍微搜索一下就可以找到答案)。如果你考虑自托管的JVM,它们本身是用Java编写的(比如Jikes),那么这尤其有趣。 - musiKk
4个回答

5

对于Java来说,JVM本身是用C++编写的,可能还有一点C语言或汇编语言。而标准API库则基本上完全使用Java编写(只有少数几个本地方法是用C或C++实现的)。


这取决于具体的实现。Maxine和Jikes RVM(以前称为Jalapeno)几乎完全使用Java编写。我相信IBM也有一个用Smalltalk编写的实现。 - Tom Hawtin - tackline

3

由Sun(Hotspot)提供的JVM是用C++编写的,尽管标准Java库的部分也是用Java编写的。

.NET也是一样。VM和核心库(与底层平台和本地库进行接口)是用C++编写的,其余部分则是用C#编写的。


2

1
大部分的.Net框架是用C#编写的。这一点可以从微软的Rotor项目中得到证实,该项目基本上是许多.Net框架的源代码。然而,核心库是用C++编写的,包括虚拟机本身和直接与操作系统进行交互的库。
至于Java,它在编程方式上与.Net非常相似。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接