对平台对编译器的熟悉的重要性已经不需要再强调了吧~ 虽然表面上跟很多职位没有直接的联系~ 个人觉得对android源码的解读 对python perl以及一切优秀开源的底层产品的解读标志着你在公司里是不是不可取代的~ 最近甚至觉得, 对于拿着文档用一套API编程的位置, 比如iOS的编程, 你甚至不需要一个CS的degree, 没受过正规科班研究院训练的编程兴趣爱好者们看完文档上手就会, 换句话说公司随时可以炒掉你 在业务不景气节约工资支出的时候…… 话说其实读这本书感觉好辛苦~ 主要是之前一点都没接触过python源码, 然后断章取义滴看代码片段没有能在脑里形成一个清晰滴脉络, 个人推荐先自己读一遍python的源码 再来看相应的讲解会比较好, 我下的这本是结合2.4.1的版本讲解的。 感觉python各个版本变动还是有点打, 最郁闷的是向前兼容性不那么好, 看看有米有人再出点神马对3.X的版本进行解读的。 我目前用的是2.5.2.
也是在读这本书的时候, 我才知道Python的解释器是用ANSI C实现的~ 这就难怪python可以这么轻易滴跟标准C/C++代码整合。 这本书结合python 源码, 对于用系统编程语言实现动态脚本语言的过程中面临的各个问题及其解决方案, 以及python特色的实现原理都进行了讲解~ 结合自己感兴趣的python版本来看可以对编译器的构建有更实际的了解。 我意思是不像我们读大学那时候只是理论上懂得, 实际项目只做到词法解析那一层~
对于python初学者速成的话还是建议byte of python那本, 系统地学习基本功就建议python from novice to professional(python进阶), 或者python核心编程。 个人觉得读这本不会有太大帮助, 反而容易乱。
这本书对于熟练掌握C的程序员, 如果想要结合实际项目学习设计模式, 学习编译器构建等方面帮助会比较大, 或者对于还未熟练掌握C的, 作为学习看看指针, 数据结构方面比较好的实践也有帮助。 我意思是, 那里面列出的源代码都是值得仔细去读去体会的~ 从篇幅上看本书更注重对静态数据结构的分析, 对context和模块交互方面相对不那么详细, 这就是国人看问题的角度跟老外的差异, 上操作系统课是用的莱昂氏源码那本书的童鞋回忆一下就知道~
推这本书的原因有几点: 1. 它是读过第一本讲解释器方面比较切中要害的书, 抓主要矛盾来解决而不是像其他国产技术书籍对各个方面都一样的偏重, 有些还开讲一些历史啊 题外话啊啥的感觉就是纯占篇幅赚稿费的, 对真正的难点, 很多情况下也是真正的核心所在真正能让产品变得实用的处理轻描淡写讲得不清不楚; 2. 作者是我见过写技术书籍里最活泼的, 哈哈~ 和我是一个风格, 不知道会不会被人看作不严肃伪技术或者绕弯骗稿费…… Anyway在这样的气氛下一路看过来不会觉得疲倦, 感觉就像一个朋友坐你对面跟你侃侃而谈; 3. 短小精悍, 全书正文部分就130页, 呃~ 起码我拿到手的电子版就130页~ 一个周末就读完鸟~ 这样你可以一个周末读一遍, 多读几个星期加深理解, 实在理解不了的地方还有作者的邮箱可以沟通交流一下。 顺应了当前的快餐文化这个背景 大家都浮躁嘛^_^ 话说我也是读了好多遍才来写这个书评的, 感觉千言万语不吐不快临到纸上又觉得都是废话不应该搬出来浪费大家时间…… 囧~ 话又说上研究生以来读的貌似大多数都是速成的东西, survey连图不超过60页, 一般论文不超过20页, 其实是15页的都少, 基本10页 11页这样, 教程都不是什么21天精通XXX了, 而是一刻钟会用XXX ^_^v
好吧说啦辣摸多 以下是我读完后对本书, 或者python的一个总结:
Python的运行时环境包括对象/类型系统(Object/Type structures),内存分配器(Memory Allocator)和运行时状态(Current State of Python)。
Python的核心是解释器(interpreter)。其中Scanner对应词法分析,将文件输入的Python源代码或从命令行输入的一行行Python代码切分为一个一个的token;Parser对应语法分析部分,在Scanner的分析结果上进行语法分析,建立抽象语法树(AST);Compiler是根据建立的AST生成指令集合, 也就是Python字节码(byte code),最后由Code Evaluator来解释并执行这些字节码。因此,Code Evaluator又可以被称为执行引擎。
像java一样 (感觉很多东西都跟java很靠拢啊 Java的设计真的很优秀很前瞻性啊) , python也有维护数据结构维护 变量值跟变量的映射关系; 另外为了减小申请系统资源这个操作对性能的影响, 大量滴运用了pool, 各种pool各种预取预分配, 这里要注意的一个地方是, 预取的量不是用什么context awareness的算法来决定的, 是… 是根据大量的实验及对结果的观察分析决定的; 所有的对象都有一个共同的老祖宗, 类似java里的object, 维护一个所有对象类型共同的头结构; 一些很麻烦的事情, 放在程序初始化的时候做, 表现出来就是可能启动慢了一点, 但一旦启动了可以运行得 比较快那样~ python基于C的各种基本数据结构 建立了各种内建数据类型 像map list dict那些的……
感受最深的一点是无论 java还是python 或者php, 字符串的事情是最纠结的~ 进行字符串操作前一定要搞清楚代码将如何执行 bufferstring.append(string)的效率要比 string+string高多了 如果到服务器端每秒需要运行上千次的语句 这种差异一下就能看粗来~
最后 期待哪位达人对android也写一本类似的作品~
貌似是第一本对python的实现进行讲解的书
对“貌似是第一本对python的实现进行讲解的书”的回应
《Python源码剖析》热门书评
-
万众期待的优秀著作
80有用 5无用 膘 2008-10-14
Python 是公认的优秀语言,而很多人可能并不知道,标准python实现,同样是非常优秀的C源码项目。它利用中立的标准C语言,洗练的实现了动态面向对象环境,使得Python语言的灵活和优雅得以充分体现。Python平台的C源码,本身就具体很高的学习价值。然而像其它成功的大型开源项目一样,庞大的代码...
-
我写的推荐序
31有用 20无用 Fenng 2008-07-09
非常高兴看到又一本原创 Python 图书的出版。说起来,我和 Python 还算有一点缘分。在 2000 年的时候,非常偶然的一次机会接触到Python,当时网上资料非常之少,不知天高地厚的我竟冒失地接手了国内第一本引进 Python 图书的合作翻译工作,往事不堪回首。记得当时经常有人问我 Pyt...
-
只说不足的
20有用 3无用 E.T 2009-07-10
好的方面已经有很多读者说过了,这里提一下我认为做得不好的几点,概括起来是“二多一缺”:二多:“口水话”多,本人认为对增进理解或过渡没有太大作用;typo 多,需要质疑一下校对者的水平。一缺:缺少参考书目,经常读国外技术书籍的人应该不会对bibliography这个词感到陌生吧,哪怕只引用了一句话,也...
-
态度诚恳,但是缺乏洞见
17有用 0无用 LipingTaBaBa 2012-01-12
这本书其实不是面向python用户的,而是剖析python的运行时实现。更适合于进阶C程序员以提高C语言能力。不过不知道是作者功底不够,还是时间太紧,很多地方作者罗里罗嗦的写了好几页纸,比人家源代码还长,可还没有源代码里的注释讲得清楚。我仔细看过的有第十六章《Python的内存管理机制》,下面以这个...
-
国内技术书籍神作
14有用 1无用 simonliu 2012-01-30
其实这本书已经在我书桌上摆了很久,断断续续看完了,后来又从头看了一遍,总体感觉呢就两个字“佩服”。作者在 Python 研究方面不一定是国内最牛的,关于作者的文笔风格争议也颇多,但是作者是第一个把研究 Python 的收获传播出来的人,光是这一点就比那些成天在那里嚷嚷说这不好、那不对的人高尚很多。也...
书名: Python源码剖析
作者: 陈儒
出版社: 电子工业出版社
副标题: 深度探索动态语言核心技术
出版年: 2008-6
页数: 480
定价: 69.80元
装帧: 平装
ISBN: 9787121068744