人类是计算性的吗?人类的大脑是计算器设备吗?我们的大脑是遵循阿波罗11号相同基本规则的巨型钟表装置吗?为了了解计算机和它的局限性(如果有的话),我们需要回答这些问题。
![89279dc8ef8e9c9a9815c0770a605408.png](https://i-blog.csdnimg.cn/blog_migrate/eb2d48c6129bdeb71ab78201c5651b5f.jpeg)
这就是为什么说计算机是具有哲学意义的设备。锤子只能敲钉子,锯子只能锯木头,但计算机可以映照出现实世界中10亿个不同的东西。公正地说,我们还不理解计算机在形而上学的含义。我们知道它以微妙和显著的方式改变了世界,但更多的事情正在发生。正如著名教授和哲学家马歇尔·麦克卢汉(Marshall McLuhan)几十年前所说,计算机是“人类最非凡的技术,它是我们中枢神经系统的延伸。与计算机相比,车轮只算一个呼啦圈”。计算机日新月异,同时它又随处可见。人们只能想象到它在一个世纪后能做什么,甚至更短,10年后能做什么。
这个设备是从哪里来的?我们是怎么决定做一个出来的,甚至怎么想到这样的事物是可能的?从计算机诞生到今天的历史很短,就本书的目的而言,只要提到巴贝奇、图灵、冯·诺依曼和香农这四个名字就够了,把它们放在一起念,发音听起来就像一家高科技律师事务所。让我们分别看看他们四人的观点,当它们结合在一起时,将为你提供现代计算的基本要素。
![db3a82d5f632449c9ffc43a9144651cd.png](https://i-blog.csdnimg.cn/blog_migrate/6bb5ee7d4379f7a6437437144871dac1.jpeg)
查尔斯·巴贝奇(Charles Babbage)的故事始于1821年的伦敦。当时,工业革命正在进行,科学和数学从大学和实验室转移到工厂。在计算机出现之前,人们出版了大量的数学用表,方便那些从事复杂计算的人快捷运算。这些表册中容纳了对数、天文计算、工业和科学所必需的其他数据集。问题是其中的每一个数字都是手工计算的,因此包含许多错误。一个错误的数字可能会使一艘船偏离航线,损坏银行记录,或导致生产出故障机器。巴贝奇对这些错误感到沮丧,他说:“我倒希望这些计算是用蒸汽完成的。”
这句话意义深远,而且对于那个年代来讲非常超前。从中可以捕获一种感觉,即机械的东西比有机的东西更稳定可靠。蒸汽驱动的机器以一种严格的标准被仔细打磨,这些机器孜孜不倦地工作,生产出始终如一的高质量产品。巴贝奇的天才之处就在于他意识到,如果蒸汽可以制造齿轮,那么它也可以计算对数。
![d34e13cfc09afca3e0262e8b94e327d5.png](https://i-blog.csdnimg.cn/blog_migrate/7a1f532c66a64ac33b4603b448f2ecaa.jpeg)
因此,他构思并试图建造一台完整的计算机。他理解这台机器的重大意义,并指出“只要有一台分析机(Analytical Engine)存在,它必然会引领未来的科学进程”。不幸的是,他耗尽了资金、努力却以失败告终,这也是一直以来新兴事业的普遍命运。然而,在2002年,伦敦科学博物馆造出了巴贝奇设计的重达10 000磅的计算机,它运转完美。巴贝奇的故事讲完了,这个猜测蒸汽可以为计算机提供动力的人退场了。
接下来上场的是艾伦·图灵(Alan Turing)。在我们的故事中,图灵的贡献出现在1936年,当时他第一次描述了我们现在称之为“图灵机(Turing machine)”的东西。图灵构思了一台可以处理复杂数学问题的假想机器。该机器由一条狭长的方格纸带组成,理论上它是无限长的。在纸带上,总是有一个活动单元格,在该单元格上方悬停着一个读写头。根据收到的指令或运行的程序,读写头可以在纸带上读写和移动。
![649c760b2ec5f9de4bdb7fb8f0360a17.png](https://i-blog.csdnimg.cn/blog_migrate/630a615d6155fd826d50b1e59cede273.jpeg)
图灵机的意义不在于“他指出了如何建立一台计算机”,而是“这个简单的假想设备可以解决大量的(几乎所有的)计算问题”。事实上,今天计算机可以做的任何事情,理论上都可以在图灵机上完成。图灵不仅构想了这台机器,而且把原理都弄明白了。想一想这台简单的机器,这个只用到几个部件的思想实验(thought experiment):阿波罗11号登月和返回地球所需要做的一切都可以在图灵机上编程,你的智能手机能做的一切都可以在图灵机上编程,IBM沃森(IBM Watson)能做的一切都可以在图灵机上编程。谁能猜到这样一个不起眼的小设备竟能做到这一切呢?图灵确实想到了,但似乎再没有其他人像图灵这样拥有独特的想法。图灵的故事到此结束。
下面讲约翰·冯·诺依曼(John von Neumann),我们称他为现代计算机之父。1945年,他为计算机开发了冯·诺依曼体系结构(von Neumann architecture)。如果说图灵机纯粹是理论上的,旨在界定计算机可以做什么的问题,那冯·诺依曼体系结构就解决了如何构建真实计算机的问题。他建议使用一个内部处理器和可以同时存储程序和数据的计算机内存。除此之外,可能还要有外部存储器来存储当前不需要的数据和信息,再加上输入和输出设备,一个冯·诺依曼装置就组建完成了。当你阅读的时候,你可以把你的所读依次映射到计算机的中央处理器、内存、硬盘驱动器、键盘和显示器,这样就走了一圈。
![042c871bcb3776a550af4be4838baa66.png](https://i-blog.csdnimg.cn/blog_migrate/4a10bb928f73a758aa812da51da0f490.jpeg)
最后来说说香农。在1949年,克劳德·香农(Claude Shannon)写了一篇题为《编程实现计算机下棋》(Programming a Computer for Playing Chess)的论文,其中描述了一种将国际象棋简化为可以在计算机上编程的一系列方法。虽然这听起来没什么大不了,不太可能让香农成为计算机史上的拉什莫尔山(Mount Rushmore)的四大巨头之一,但从实际和现实的角度来看,香农让计算机可以在一个抽象的层面上操作信息,决定如何移动棋子。这让人们第一次认识到了计算机不仅仅是用来进行数学计算的机器。想想看,1949年以前,计算机只是那种物理课上用到的,可编程的计算器;1949年以后,可以想象某一天,计算机会建议你购买哪些股票。尽管包括图灵在内的许多其他人在理论上都证明了计算机的能力,但是香农将其实现了。
![1d0d91a0c4a6ea9a4935e563acbec810.png](https://i-blog.csdnimg.cn/blog_migrate/abb4685679f2ab7a398c401d8dda210f.jpeg)
总结一下:巴贝奇认识到可以用机器做数学运算,图灵发现他们还可以运行程序,冯·诺依曼想出了如何构建计算机硬件,而香农展示了软件如何做乍一看不像数学问题的事情。
这就是我们的处境,计算机变得越来越快,越来越强大。我们是否静下心来想过,计算机到底是什么?是一台具有哲学意义的设备?是人类最非凡的技术?是人类中枢神经系统的延伸?是人类思想的扩散?是人类智慧的升华……?