Ruby书籍推荐如何在引擎盖下工作?

Ruby书籍推荐如何在引擎盖下工作?,ruby,Ruby,我正在从.NET迁移到Ruby,并且开始对该语言有了相当不错的掌握。然而,还有很多事情我想知道更多 在C#中,我读过的最好的一本书叫做《C#via C#CLR》。它更详细地介绍了CLR如何工作、内存如何工作、垃圾收集、反射等 是否有一本与Ruby相当的书?解释解释器在封面下的样子的东西?Ruby中没有“解释器”。Ruby是一种编程语言,编程语言是一种抽象的数学对象,一套逻辑规则和限制 Ruby的一个子集有一个。曾经有一套完整的用Ruby编写的可执行示例,名为,但不幸的是,由于Ruby的语言设计者

我正在从.NET迁移到Ruby,并且开始对该语言有了相当不错的掌握。然而,还有很多事情我想知道更多

在C#中,我读过的最好的一本书叫做《C#via C#CLR》。它更详细地介绍了CLR如何工作、内存如何工作、垃圾收集、反射等

是否有一本与Ruby相当的书?解释解释器在封面下的样子的东西?

Ruby中没有“解释器”。Ruby是一种编程语言,编程语言是一种抽象的数学对象,一套逻辑规则和限制

Ruby的一个子集有一个。曾经有一套完整的用Ruby编写的可执行示例,名为,但不幸的是,由于Ruby的语言设计者缺乏认可,它被其维护者放弃了;但是,一些实现仍然在内部使用它进行测试,例如和。还有一组测试用于指定实现中语言的行为,这是大多数语言设计人员正在攻击的实现

Ruby有几个实现,但是,这些实现都不是解释器,它们都至少有一个或多个编译器:

  • ,由Ruby编写的Ruby to字节码编译器,Ruby中的内核和核心库,以及用C++编写的带有字节码解释器和基于LVM的JIT编译器的VM两阶段混合模式实现。
  • ,这是一个两阶段的混合模式实现,使用PyPy框架构建,该框架由一个Ruby到字节码编译器和一个VM组成,其中一个VM带有用RPython编写的字节码解释器和JIT编译器,以及一个部分源自Rubinius的内核和核心库
  • ,这是一个两阶段混合模式实现,构建在GemStone/S Smalltalk平台之上,该平台由一个Ruby到字节码编译器和一个或多或少未经修改的GemStone/S Smalltalk VM组成
  • ,这是一个两阶段的混合模式实现,构建在Microsoft的动态语言运行库和公共语言基础设施之上,用C#编写
  • ,一种基于JRuby和Truffle AST解释器框架的Ruby新实现
  • ,一个两阶段混合模式实现,构建在Java平台之上,用Java编写
  • ,是ISO Ruby规范子集的一个小型、轻量级、可嵌入的实现。(这是Ruby的创建者自己正在进行的实现。)
  • ,这是一个两阶段实现,由一个Ruby到字节码编译器、一个字节码解释器以及一个核心库组成,所有这些都是用C编写的
  • 是一个Ruby-to-ECMASCript编译器,不幸的是它没有100%准确地实现Ruby语言的语义
我试着将它们从最容易阅读的源代码排列到最难阅读的源代码,顺便说一句,也(几乎)从最有趣的源代码排列到最不有趣的源代码。(我认为JRuby+Truffle非常棒,当谈到如何让Ruby快速燃烧的有趣想法时,它应该与Rubinius和Topaz一起出现。)

我之所以将它们从最容易阅读的源代码排列到最难阅读的源代码,是因为,实际上没有任何书籍描述各种实现。阅读资料可能是你最好的选择。然而,这部经典作品给鲁宾尼乌斯的设计带来了巨大的灵感。JRuby+Truffle作为一个研究项目,已经发表了相当多的论文

有一个网站链接到一些论文,主要是关于JRuby+Truffle,也有关于MagLev和JRuby的