ruby - Ruby MRI 是什么样的解释器?

标签 ruby implementation interpreter

是语言翻译吗?还是字节码解释器/JIT 编译器?我在哪里可以了解有关实现的更多信息(除了浏览源代码)?

最佳答案

这是一个名为 YARV 的字节码解释器,由 Sasada Koichi 编写。

下面是它的外观示例:

puts RubyVM::InstructionSequence.compile("1+1").disasm
== disasm: #<ISeq:<compiled>@<compiled>>================================
0000 trace            1                                               (   1)
0002 putobject_OP_INT2FIX_O_1_C_
0003 putobject_OP_INT2FIX_O_1_C_
0004 opt_plus         <callinfo!mid:+, argc:1, ARGS_SIMPLE>, <callcache>
0007 leave

进一步阅读:
  • YARV instruction set

  • 虽然 MRI 还没有 JIT,但有 Ruby+OMR 项目,它试图添加一个基于 Eclipse OMR 的 JIT 编译器:
  • Ruby+OMR JIT Compiler: What’s next?
  • 关于ruby - Ruby MRI 是什么样的解释器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42609901/

    相关文章:

    ruby-on-rails - 允许在 Ruby/Rails 应用程序中使用用户定义的脚本

    c++ - 继承是如何在内存级别实现的?

    c++ - STL 队列(或堆栈)的双端队列和链表(+ vector )实现之间有什么区别?

    android - Android上的Haskell解释器?

    ruby-on-rails - 抽佣 Assets :precompile cannot load such file -- uglifier error

    Ruby:如果匹配则返回字符串的第一个字符,如果没有匹配则返回nil?

    java - 编译语言与解释语言

    language-agnostic - 我将如何手动编写复杂的公式解析器?

    javascript - 具有多个字段的大型对象数组中的最佳搜索算法

    C 中的 Java 实现(可能特定于平台)