所有Ruby解释器都遵循www.ruby-lang.org中定义的相同Ruby语法吗?
因为它是定义Ruby语言的解释器。这是否意味着一个口译员可以添加其他口译员没有的特征/合成糖?
如果是这种情况,那么所有口译人员都有自己的API文档吗?
因为我正在使用:http://ruby-doc.org/ruby-1.9/index.html。
哪个口译员正在实施那个?
有人可以阐明这个话题。
谢谢!
答案 0 :(得分:3)
所有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,可能永远不会实现。
但我不明白为什么你如此关注语法。语法差异是微不足道的:如果 语法不同,引擎就会拒绝解析你的文件,你会立即知道有什么不对劲。另一方面,语义的差异更加危险。
答案 1 :(得分:0)
你指的是哪种“语法糖”?
请记住,ruby只有很少的关键字。很多看起来像关键字的东西实际上是由内核实现的(例如require
,puts
和raise
)。