最近在看Python、Ruby语言。发现动态语言和静态语言的语法差别确实很大,很多部分与静态语言在概念上就明显不同,比如动态语言的变量没有类型定义等。这些都使我很好奇。我不是高手,但我对动态语言的实现頗感兴趣,所以也就有了这一系列文章,旨在留一些我个人学习的脚印,并以期与同好分享。希望大家指正。
开始
分析源码当然需要一个分析源码的好工具。我通常使用source insight,你可以在www.winzheng.com找到,这里不多说它了,你用了就会知道。
学习别人的源码,我个人认为不应该找最新版来看。一是因为最新版代码往往由于功能的强大使得相应代码变多近一个数量级。二来经过多次修改,特别是开源软件经过多人对代码的修改扩充,已使得代码的可读性大大降低。所以,我将选择我所能找到的两个软件最old的版本分析。呵呵,萝卜芹菜各有所爱,别砸我哟。
Python:你可以在http://www.python.org/download/releases/src/找到Python的1.0.1版
Ruby:你可以在http://ftp.isu.edu.tw/pub/Unix/Lang/Ruby/1.0/找到Ruby的1.0版
Python的目录结构很清晰,主目录里只有几个工程文件,源码都放在相应的目录里。
Ruby的目录结构比较差,工程文件和主代码都混合在主目录里,个人认为比较难看。
ok,今天先到这里,巴西和加纳的比赛要开始了,呵呵,先看球去了。