【问题标题】:Do all Ruby interpreters follow the same Ruby syntax?所有 Ruby 解释器都遵循相同的 Ruby 语法吗?
【发布时间】:2011-04-08 19:21:15
【问题描述】:

所有 Ruby 解释器都遵循 www.ruby-lang.org 中定义的相同 Ruby 语法吗?

  • 磁共振成像
  • YARV
  • 鲁比尼乌斯
  • JRuby
  • 铁红宝石

因为它是定义 Ruby 语言的解释器。这是否意味着一个解释器可以添加其他解释器没有的功能/语法糖?

如果是这样,所有解释器都有自己的 API 文档吗?

因为我正在使用:http://ruby-doc.org/ruby-1.9/index.html

哪些解释器正在实现该解释器?

有人能解释一下这个话题吗?

谢谢!

【问题讨论】:

    标签: ruby jruby rubinius yarv


    【解决方案1】:

    所有 Ruby 解释器都遵循 www.ruby-lang.org 中定义的相同 Ruby 语法吗?

    是的,它们都使用相同的语法。事实上,它们实际上都使用同一个解析器,或者至少是一个从同一个源文件自动生成的解析器。

    因为我正在使用:http://ruby-doc.org/ruby-1.9/index.html

    哪些解释器正在实现该解释器?

    目前,唯一完全实现 Ruby 1.9 的生产就绪 Ruby 执行引擎是 YARV。

    JRuby 本身已准备好生产,它同时实现了 Ruby 1.8.7 和 Ruby 1.9.2,但 Ruby 1.9.2 的实现尚未完成。 IronRuby 和 Rubinius 也在研究 Ruby 1.9.2 的实现。 MacRuby 有一个相当完整的 Ruby 1.9 实现,但距离 1.0 版本还很远。 MRI 没有实现 Ruby 1.9,而且可能永远不会。

    但我不明白你为什么如此关心语法。语法差异很容易发现:如果在语法上有差异,引擎会简单地拒绝解析你的文件,你会立即知道有什么问题。另一方面,语义上的差异要危险得多。

    【讨论】:

    • 但是我需要知道我应该遵循什么语言语法和语法糖。那里的所有教程,他们使用哪个解释器?我做了“rvm install 1.9.2-head”。使用哪种解释器?
    • 顺便说一句,MRI Ruby 不是事实上的解释器吗?那为什么不支持1.9.2呢?它是为阅读而设计的,对吗?
    【解决方案2】:

    您指的是哪一种“语法糖”?

    请记住,ruby 的关键字集非常少。很多一开始似乎是关键字的东西实际上是由内核实现的(例如requireputsraise)。

    http://apidock.com/ruby/Kernel

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 2015-06-06
      • 2013-12-13
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多