1
这是一个非常初学者的问题。JRuby是在JVM上实现的Ruby--这是什么意思?
JRuby是在JVM上实现的Ruby。这是否意味着创建过程只是从头开始创建Ruby语言,在Java方法和类中实现,而不是在C中实现?也就是说,每个Ruby方法在Java中都是一个一个地实现的?我认为我的问题根源在于对JVM缺乏了解。
这是一个非常初学者的问题。JRuby是在JVM上实现的Ruby--这是什么意思?
JRuby是在JVM上实现的Ruby。这是否意味着创建过程只是从头开始创建Ruby语言,在Java方法和类中实现,而不是在C中实现?也就是说,每个Ruby方法在Java中都是一个一个地实现的?我认为我的问题根源在于对JVM缺乏了解。
这意味着在JRuby中运行的所有ruby代码最终都会转换为由JVM执行的字节码。当JRuby被编写和编译时,这种“翻译”可能已经完成,或者它在运行时发生,当JRuby编译器将Ruby代码转换为可以在JVM上运行的某些东西时。更具体地说:
String
方法,例如capitalize!
,都在org.jruby.RubyString
Java类中实现,或者某些日期和时间内容基于joda-time
),但是JRuby利用JVM功能,如垃圾收集,多线程等,
这意味着Ruby解析器输出Java字节码而不是Ruby AST。 – 2013-06-12 18:10:18