首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JVM实现语言(如Jython )是在下面使用Java,还是使用JVM本机?

JVM实现语言(如Jython )是在下面使用Java,还是使用JVM本机?
EN

Stack Overflow用户
提问于 2015-10-23 18:29:24
回答 2查看 132关注 0票数 4

在一种使用JVM的语言中,例如Jython、JRuby或任何不是Java的语言,Java是否在某个“下面”使用的语言?

执行是否意味着:

语言移植到某个地方使用JVM + Java + JVM?

例如,Jython是用Java编写的,还是使用其他东西来利用JVM?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-23 18:58:48

那得看情况。

语言标准库的一部分可以用java实现。编译器/解释器也是如此。其他对引导不重要的部分甚至可以用语言本身编写。

用户代码本身最初可能通过解释器运行,但后来编译成字节码。此外,生成的字节码可以基于运行时收集的类型配置文件进一步优化。如果字节码的某些假设无效,则字节码可能会弹回解释器。这与hotspot的解释器/c1/c2层和许多其他JIT环境类似--尽管是在更高的抽象级别上。

但interpreter+JIT只是一种可能的方法。例如,Scala是AOT-编译成字节码。

他们还可以使用C绑定来实现没有1:1映射到JDK标准库的相应语言标准库的函数。

票数 5
EN

Stack Overflow用户

发布于 2015-10-23 18:36:45

不,它们没有(在一般情况下)编译成Java。

例如,Jython将python编译为Java字节码,然后在JVM上运行。这与JRuby编译的字节码相同。虽然Jython和JRuby本身基本上都是用Java编写的,但实际运行的python/Ruby程序并不是编译成Java,而是立即编译到Java字节码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33309132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档