同济大学论坛

 找回密码
 注册
搜索
查看: 54295|回复: 0
打印 上一主题 下一主题

计算机算法大全——算法中的亚原子粒子世界

[复制链接]
跳转到指定楼层
1#
发表于 2014-5-5 16:01:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注:此文绝非标题党,望耐心看完。
引子:思量好久,觉得有必要说说这本书《算法心得:高效算法的奥秘》(英文书名Hacker's Delight, 2nd Edition)。
本书讲解的题材,可以说市面上仅此一本(如果不算第一版的话),可以说是唯一一本讲解计算机算法的图书——而其他的算法书,则基本上全部是讲解数学算法的图书。虽然说数学算法也主要是为计算机科学服务的,但是数学算法基本上不关心计算机体系结构的细节:CPU的字长是多少?字节序是大端还是小端?带符号数和无符号数如何区分?浮点数格式采用什么标准?可以这样说:运行着数学算法的计算机,其实是图灵机——一种抽象的、在真实世界中并不存在的机器。
然而真正在实现一台计算机的过程中,计算机体系结构的细节则是极端重要的了:它们提供了数学算法中被忽略掉,但却可以用于优化的结构信息。如果说,在数学算法中,四则运算已经属于“原子”操作,那末在计算机算法中就有必要打碎这些“原子”,进入“亚原子粒子”的世界。加减法和乘除法,那肯定是要分开来讨论的,因为后者绝对要复杂得多,特别是除法。本书极其重视区分逻辑上的(数学的)数,和物理上的(真正计算机中的)数,甚至将前者用普通字体表示,后者用粗体表示。本书花了极大的篇幅,来细致地讨论数的物理表示,以及每一种基本的计算操作——计数、定位、四则运算、初等函数,等等——真正在比特这个层级上,将这些基本操作的全部细节条分缕析地展现出来,尽可能地利用任何可能的体系结构特征,来尽可能充分地利用高速存储、简化哪怕一条计算机指令,并且如数家珍地列举出每一条优化建议背后的原理。这些内容,展示了极其高超的匠艺,读来却没有丝毫的匠气。真正是亲手设计过计算机体系结构、在底层浸淫多年的经验总结,整理出来的心得和资料。
如果对计算机体系结构有兴趣,以及需要从早期阶段设计计算系统(比如嵌入式系统)的工程师,或是参与语言的低级库设计的程序员,这本书就是无价之宝。
想知道你每天使用的C语言的数学运算编译成的机器指令是怎么生成的吗?想知道库函数为什么执行起来那么高效吗?这本书里就是这些问题的答案,它荟萃着的是计算机工程的骄傲。正好比尽管所有普通人都习惯于生活在原子的世界,但亚原子粒子世界才是前者存在的根本理由。
把这本书放在书架上吧,可能它并不是你天天都要翻阅的图书,但如果你有朝一日真需要本书中的内容,别的地方可是找不到的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机访问本页请
扫描左边二维码
         本网站声明
本网站所有内容为网友上传,若存在版权问题或是相关责任请联系站长!
站长联系QQ:7123767   myubbs.com
         站长微信:7123767
请扫描右边二维码
www.myubbs.com

小黑屋|Archiver|手机版|同济大学论坛

GMT+8, 2024-5-7 09:24 , Processed in 0.066201 second(s), 15 queries .

Powered by 高考信息网 X3.3

© 2001-2013 大学排名

快速回复 返回顶部 返回列表