深入理解“编码”

53 篇文章 1 订阅
13 篇文章 0 订阅

    
        好书推荐。
        上周,偶然看到一本老书《编码:隐匿在计算机软硬件背后的语言》(Charles Petzold著,2000年中译本名为“编码的奥秘”,英文名:“Code: The Hidden Language of Computer Hardware and Software”)。这几天陆续看完,实在是一本好书,可以和另一本牛书:《深入理解计算机系统》(Randal E.Bryant, David O'Hallaron著,英文名:Computer Systems: A Programmer's Perspective)分庭抗礼。故记录个人认为之精彩片段,与有兴趣的朋友分享讨论。
       
        1. 组织结构
        《深入》一书。开篇第1章(计算机系统漫游),以经典的“hello,world”出发,从中揭开计算机系统中大颗大颗的黑珍珠及神秘锁链。信息表示、编译系统、硬件组成、数据信号流程、存储系统金字塔、操作系统、体系结构。然后深入细节,从程序员角度,庖丁解牛般,游历计算机系统的主干分支。学了四年,毕业好几年,看了此书,才真正对计算机系统有些开窍。
        《编码》一书。从10岁儿童的角度,采用成长学习法:由日常电器手电筒开始,介绍莫斯密码,布莱叶盲文,制造出“拐弯通信”的电灯系统;然后从发报机、断电器、十进制、二进制,引导出二进制电灯控制系统“继电器”;再结合布尔系统,封装出电路的基本单位,与门、非门、与非门、或非门、反相器、缓冲器;构造出初级组件:加法器、触发器、选择器、译码器、锁存器、振荡器;组合出计算机系统:时钟、CPU、存储器、总线、操作系统、GUI。看了此书,才发现对计算机系统,理解不如“十岁儿童”。
       
        2. 内容
        一些书评说《编码》是描述计算机的科普书籍,确实如此,里面的手电筒、电灯、手指计数、加减法、开关、控制面板等,把计算机的各种特性加以明喻。你能理解电灯工作原理,你就能理解计算机的大概工作流程。
        另一方面,《编码》又是另一版本的《深入理解计算机系统》。什么是加法器?如何搭建存储器?选取时钟如何影响性能?操作系统目的何在?GUI的重要性。只有深入理解了计算机系统,才可能描述给十岁儿童理解。当然,也可以向白居易学习,描述给80岁的老婆婆理解。
       
        3. 复杂性和模块化
        现在面向对象已是软件行业的鼎盛时期,谈及面向对象,我们言必称“多态”、“继承”、“封装”、“抽象”,OOX差点PK掉XO。这些名词本身就被“封装”的很“抽象”,而且被“继承”为“多态”了,我们开始在“浮沙筑高楼”。我们已经逐渐忘记,我们的最终目的是解决复杂性,解决方法是“模块化”,而面向对象,是一种实现方式而已。
        《编码》一书中,从手电筒开始,不断将问题条件增多,再给出一个表示较复杂的低层次解决方案后,马上将问题和解决方案封装为模块,提高问题和解决方案抽象性。在每一章节中,十岁儿童所需关注的问题,一般都在个位数,而且在同一层次。这样的“面向对象”(直面朝向十岁儿童这个对象),才是脚踏实地、实效的面向对象。我们可以从本书中看到、学到很多模块化对象,一些目前仍然在发挥着巨大作用。
            
        一个有趣的联系
        《编码》,出版于2000年。书中,Petzold以“图形化革命”结束。
        1988年,Petzold出版了《Windows 程序设计》(英文名: Programming Windows)。至今已出第5版,成为“图像化革命”的巅峰之作。
        此间,不知有何暗示?

        
        为了体现作者面向对象的意图,建议下次译者将中文书名更换为更加面向对象的书名。个人建议为:《深入理解编码》。不知合适否?
        
        参考资料
        1. 《深入理解计算机系统》

        2. 《编码:隐匿在计算机软硬件背后的语言》

        3. 试读电子版。支持正版纸板书,及时购买收藏。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值