浏览 4800 次
锁定老帖子 主题:活动的XRuby讲稿
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-25
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-28
今天下过来,看了看!心想一个问题:怎样可以快速了解xruby。
总结了一下: (1)把《XRuby Hacking Guide》通读了一遍,然后按照给出的步骤把上面的Hello程序运行了一遍,找点感觉。 (2)停下来,凭自己的直觉,想想xruby会是什么样子。 (3)自己该从哪里入手呢?得把突破点找出来。自己采用的方式是查看src的目录结构。 (4)有compiler和runtime两个目录。避重就轻,自我感觉runtime简单些,就选它。 (5)runtime下有4个目录,首先弄清楚的当然应该是它们之间的关系。按照dreamhead所给ppt描述,对此有了粗略的感觉。 (6)感觉毕竟是感觉,得自己理出一条线来。我选择的路线是: RubyValue(lang),RubyString(value),StringClassBuilder(builtin)。 (7)看代码时,先看测试代码,了解它到底用来干什么。 ---------------------------- 对于字符串来说,value和builtin的界限好像不是特别清晰,把RubyString的方法移到StringClassBuilder中也可以。 第一感觉还不错,慢慢看! |
|
返回顶楼 | |
发表时间:2007-03-29
To zhangyu8374:
你提到的问题确实存在,value和builtin有一些内容比较容易混淆。现在主要是这样区分的,value存放的是实体,builtin提供的是Ruby层次上的方法,但是有些方法究竟作为实体的方法还是只是作为Ruby层次上的方法,现在还没有做严格的区分。我曾经在《管窥Ruby——方法定义》中讨论过类似的问题,你可以参考一下。如果你有更好的解决办法,欢迎你贡献出来。 了解XRuby最快的方式就是通过builtin,这样很快就可以上手,至于runtime的支撑结构和compiler,可以在有一定了解之后,慢慢来。我个人走过的路就是builtin->runtime->compiler。 |
|
返回顶楼 | |
发表时间:2007-03-29
我简单翻译了下XRuby Hacking Guide,奇怪你们为什么不提供下中文版呢?读了下builtin包中的代码,并不是很难理解,特别难的应该是在runtime和compiler。编译器对我来说一直是个很神秘的东西。
|
|
返回顶楼 | |
发表时间:2007-03-30
To dennis_zane:
感谢你提供了《XRuby Hacking Guide》的中文翻译。这篇文档的最初写的时候,项目中只有yawl和我两个人,用英文写是为了给更多的人了解的机会。后来,也主要工作都在其它方面,也就忽略了。 不知道您是否介意,我把您翻译的文档做一些小的修改之后,加入到XRuby中去。 另外,现在runtime处在一个大的修改之中,所以,没有提供相关的文档。至于编译器的部分,可以参考着XRuby的前端,去读一下编译原理,了解一下Antlr的用法,应该可以有个大致的了解。 |
|
返回顶楼 | |
发表时间:2007-03-30
dreamhead 写道 To dennis_zane:
感谢你提供了《XRuby Hacking Guide》的中文翻译。这篇文档的最初写的时候,项目中只有yawl和我两个人,用英文写是为了给更多的人了解的机会。后来,也主要工作都在其它方面,也就忽略了。 不知道您是否介意,我把您翻译的文档做一些小的修改之后,加入到XRuby中去。 另外,现在runtime处在一个大的修改之中,所以,没有提供相关的文档。至于编译器的部分,可以参考着XRuby的前端,去读一下编译原理,了解一下Antlr的用法,应该可以有个大致的了解。 翻译有些用词不够恰当,能被接受是我的荣幸。我有在看antlr方面的资料,因为不是科班的,理论上确实很多东西不明白,不过有系统学习过正则,看起来还有点眉目,准备系统找本书补补,看能不能看懂。多谢。 |
|
返回顶楼 | |
发表时间:2007-03-30
To :dreamhead
runtime处在大的修改中,大体思路是怎样的,哪里可以得到这方面的介绍。 看现在的实现,我感觉不爽的一个地方是继承层次太深了。 RubyClass-->RubyModule--->MethodCollectionWithMin... 是不是可以并列起来,或者通过组合的方式? |
|
返回顶楼 | |
发表时间:2007-03-31
感谢dennis_zane,经过一些小的修改,我已经将他翻译的版本加入到XRuby中。
To zhangyu8374: XRuby要进行的修改就是将我们已经写过的一个newruntime合并到主干中。这部分代码早就写过了,不过,因为与原来的版本差别比较大,所以一直没有合并进来。没有什么特别的,newruntime只是参考着C Ruby去写了一个结构,《Ruby Hacking Guide》介绍了这个结构。这部分英文版已经发布的2、3、4和6几个章节很好的介绍了这些内容。其实,这几章的中文版已经翻译好了,等着其它几个章节就绪,就可以发布了。想了解这部分代码可以参考newruntime这个branch,也许最终合并进来会有一些小的差异,但基本思想不会变。 另外,你说的继承层次确实有些值得探讨的地方,不过,它就是这次要修改的目标。 |
|
返回顶楼 | |