【发布时间】:2013-07-09 23:52:58
【问题描述】:
我最近开始学习 Ruby。我知道 Ruby 是一种解释型语言(尽管“每种”语言都是因为它被 CPU 解释为机器代码)。但是 ruby 解释器如何将 Ruby 编写的代码转换为机器码呢?我读过解释器不读取源代码,而是读取字节码,但是我不必像在 Java 中那样编译。那么,这是 Ruby 为您做的另一件事吗?如果是,它会在运行时生成字节码吗?因为您永远不会像在 Java 中那样获得 .class 文件。最重要的是,我阅读了有关即时编译器的所有内容,这些编译器显然对字节码做了一些事情,因此它运行得更快。
如果是上述情况,解释器是否首先扫描所有源代码,将其转换为字节码,然后在运行时使用 JIT 再次编译?
最后我不是在寻找有关性能方面的答案,我只是想知道它是如何处理的,它经历了哪些阶段以及它在什么时间完成。
感谢您的宝贵时间。
我正在使用这个解释器http://www.ruby-lang.org/en/
【问题讨论】:
-
根据您的问题,我们是否应该假设您使用 JRuby,即 ruby 的 Java 实现?
-
不,我使用的是 Ruby 网站上的标准。
-
JIT?你是说安卓吉特?你在 android 中使用 jruby 吗?
-
哦,即时编译器...好的..
标签: ruby interpreter