我正在从.NET迁移到Ruby,并且我开始对语言有了相当不错的把握。然而,我还有很多想要了解的事情。
在C#中,我读过的最好的书之一是通过C#称为CLR。它详细介绍了CLR如何工作,内存如何工作,垃圾收集,反射等等。
Ruby有同等的书吗?什么解释了解释器在封面下的样子?
答案 0 :(得分:0)
Ruby中没有“解释器”。 Ruby是编程语言,编程语言是抽象的数学对象,是一组逻辑规则和限制。
Ruby的子集有一个ISO specification。曾经有一套用Ruby编写的全面的可执行示例,称为RubySpec,但不幸的是,由于Ruby的语言设计者缺乏支持,它被其维护者抛弃了;然而,一些实现仍然在内部使用它来进行测试,例如, Rubinius和JRuby。还有一组测试用于指定YARV实现中语言的行为,这是大多数语言设计者正在攻击的实现。
有几种Ruby实现,但是,这些实现都不是解释器,它们都至少有一个,多个编译器:
我试图从最简单到最难读的源代码订购它们,顺便提一下(几乎)从大多数到最不感兴趣的源代码。 (我认为JRuby + Truffle是非常棒的,当涉及到如何让Ruby快速开启的有趣想法时,应该与Rubinius和Topaz一起使用。)
我从最简单到最难读的源代码订购它们的原因是因为,实际上没有任何书籍描述各种实现。阅读来源可能是你最好的选择。然而,经典Smalltalk-80: The Language and its Implementation (aka the Blue Book)是Rubinius设计的重要灵感。 JRuby + Truffle作为一个研究项目,已经发表了相当数量的论文。
有一个Ruby Bibliography Page,它与论文有一些联系,主要是关于JRuby + Truffle,还有关于MagLev和JRuby的文章。