我正在从.NET转向Ruby,并且我开始对这门语言有一个相当好的把握。然而,我仍然想了解更多有关许多事情。Ruby Book有关如何在引擎盖下工作的建议?
在C#中,我读过的最好的书籍之一是通过C#调用CLR。它详细介绍了CLR是如何工作的,内存是如何工作的,垃圾收集,反射等等。
是否有与Ruby等价的书?解释翻译者在封面下看起来像什么的东西?
我正在从.NET转向Ruby,并且我开始对这门语言有一个相当好的把握。然而,我仍然想了解更多有关许多事情。Ruby Book有关如何在引擎盖下工作的建议?
在C#中,我读过的最好的书籍之一是通过C#调用CLR。它详细介绍了CLR是如何工作的,内存是如何工作的,垃圾收集,反射等等。
是否有与Ruby等价的书?解释翻译者在封面下看起来像什么的东西?
Ruby中没有“解释器”。 Ruby是编程语言,一种编程语言是一种抽象的数学对象,一套逻辑规则和限制。
对于Ruby的子集,有一个ISO specification。曾经有一套以Ruby编写的全面的可执行示例,称为RubySpec,但不幸的是,由于缺乏Ruby的语言设计者的支持,它被维护人员抛弃;然而,几种实现仍然在内部使用它来进行测试,例如, Rubinius和JRuby。还有一组测试旨在指定YARV实现中的语言行为,这是大多数语言设计者正在攻击的实现。
有红宝石的若干实施方式,但是,没有这些实现的是一个解释器,它们都具有至少一个,一些多个编译器:
我试图命令它们从最简单到最难读的源代码,并且顺便也从最多到最不感兴趣。 (我认为JRuby + Truffle非常棒,当谈到关于如何让Ruby快速发展的有趣想法时,Rubinius和Topaz应该就在那里)。
我之所以命令他们从最简单到最难读的源代码是因为,实际上没有任何书籍描述各种实现。阅读来源可能是你最好的选择。然而,典型的Smalltalk-80: The Language and its Implementation (aka the Blue Book)是Rubinius设计的重要灵感。尽管JRuby + Truffle作为一个研究项目已经发表了相当数量的论文。
有一个Ruby Bibliography Page有一些链接到论文,主要关于JRuby +松露,但也关于MagLev和JRuby。