计算机科学 101 | 读《编码》

2020.07.05 37 Views 37

《编码》是我在2019年夏天根据豆瓣上的科普书籍榜单购买回来的,正式开始看是2019年的尾巴,等到读完,已经是2020年的夏天了。从写vhdl作业写到崩到做了两次计算机结构课的TA,正好通过对读这本书的记录,来谈谈我的感想。


本书从人类历史上出现的各种对信息的编码方式谈起,依次讨论了莫尔斯码,布莱叶盲文和二进制编码;接着从第四章开始,作者带领我们走进电的世界,从最基本的手电筒谈起,到如何利用继电器和电报机远距离通信;在第十章,作者开始讨论十进制的替代品并引出了二进制数;接下来,一切顺理成章,作者介绍了逻辑门,二进制加法器,触发器及种种在电脑中有重要作用的部件;最终,作者将目光从具体的组件中移开,向我们介绍了微处理器,总线及操作系统。到这里,一台计算机就基本完成了。作为补充,作者还谈论了高级编程语言及图形化界面。

这本书的前三章写的比较像简单的科普读物,基本不涉及专业知识;从第四章手电筒开始,就需要一些电学及ee的知识了。我在读这本书的过程中,越读越有一种似曾相识的感觉,这种感觉随着逻辑门的出现开始,等到了触发器那一段我恍然大悟——我这不是在读一本计算机结构的教材吗。

伴随着这种感觉,在接下来的阅读中,我不自觉地就将这本书与计算机结构课程内容进行对比:这本书比起一般教材的优点,在于它的逻辑更清晰,章与章之间的联系更直观——比如上一章介绍了A,那么下一章很可能就是对A的一种抽象或者更高层次的技术的讨论,这种逻辑有助于读者理解章节的内容;同时它在谈论技术的时候,没有过多地涉及细节——比如汇编语言一节,作者只介绍了重要的几个命令而已;当然,这本书也有非常硬桥硬马的段落,从第十章布尔代数开始,作者一步一步实现了一个现代的存储器结构,没有专业背景的读者要读懂这一段,不比直接读教材来的轻松。这本书还有一个优点,就是解答了许多为什么的问题,比如为什么常见的位宽都是八位,等等。


抛开一本计算机科普不可避免的技术细节,每一个读者都依然可以从这本书中感受到人类智慧的伟大与科技波澜壮阔的进步。

对信息的传递是人类天然的需求之一,在这个总结性的目标之下,又包含如何高效传递,如何远程传递,如何为残障人士提供传递信息传递渠道等等诸多问题;围绕着这诸多目的,从古至今的人类不断尝试和发明新的技术——这些技术有些受限于时代条件,有些受制于人类自身的系统性特征。

但随着作者一步步推进,我们发现最简单的逻辑开关竟然可以完美地组合成一个个复杂的触发器与存储器,人类智慧的闪光就在这里;等到一个个的组件最终被作者汇集到一块硅芯片上变成一个完整的微处理器,这股从几十年前就开始撼天动地的旋风就会逐渐明朗;最终随着总线和操作系统的加入,一台完整的电脑就被创造出来了,这种感觉就像是点石成金,许多无生命的小物件在巨匠的手中获得了灵性,说不定你也会像几千年前的阿基米德一样,大喊一声:“Eureka!”

Comments
Write a Comment