JVM是否使用Java下面的Jython实现了语言,还是使用JVM本机?
作者:互联网
在使用JVM的语言中,比如Jython,JRuby或任何非Java专用语言,Java是在某个地方“使用”的语言吗?
实施是否意味着:
Language Ported to use the JVM + Java somewhere + JVM?
例如,Jython是用Java编写的还是使用其他东西来利用JVM?
解决方法:
这取决于.
语言标准库的一部分可以用java实现.同上编译器/解释器.其他对引导不重要的部分甚至可以用语言本身编写.
用户代码本身最初可以通过解释器运行,但后来编译为字节码.另外,可以基于在运行时期间收集的类型简档来进一步优化所生成的字节码.如果某些假设无效,则字节码可能会退回到解释器.这与热点的解释器/ c1 / c2层和许多其他JIT环境类似 – 尽管处于更高的抽象级别.
但是解释器JIT只是一种可能的方法.例如,Scala被AOT编译为字节码.
并且他们还可以使用C绑定来实现相应语言的标准库的功能,这些库没有1:1映射到JDK标准库.
标签:java,jvm,language-design 来源: https://codeday.me/bug/20190724/1526615.html