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