计算机科学

时间:2023-11-21 20:09:01

尼尔·格申斐尔德(Neil Gershenfeld):物理学家,麻省理工学院比特和原子中心主任,著有《智造:一场新的数字革命》(Fab:The Coming Revolution On Your Desktop-from Personal Computers to Personal Fabrication)。

计算机科学

计算机科学是一门奇怪的科学。它私自忽略了很多科学原则,甚至明目张胆地和某些科学原则作对。

有许多计算模型都是相对应的,比如,命令式编程、声明式编程与函数式编程,SISD架构、SIMD架构与MIMD架构,标量处理器、矢量处理器与多核处理器,RISC指令、CISC指令与VLIW指令等。但目前只有一个物理现实作为基础:修补程序空间可以包含陈述,这些陈述可以相互作用并从容地进行转换。除此之外其他一切都是虚构的。

而我们现在正以最大的努力去维护这一虚构世界。现如今的编程有点像弗里茨·朗(Fritz Lang)在电影《大都会》(Metropolis)中所描绘的美丽花园,统治者相信,那些在地下城中的工人会遵照指示行动。互连瓶颈、快取失效、并发线程、数据中心功率预算、并行处理机(或程序员)效率低下等问题,都像是来自地下城不满的声音。

软件没有像时间和空间那样的物理单位,它是靠硬件来运行的,而硬件拥有物理单位。应用程序的代码、被编译的可执行代码以及运行它的电路,它们彼此之间都是独立的。缩放地图时,人们会看到从市到省再到国家这种明确的层次变化,但它表示的几何形式并不会改变。为什么要对软件做这样的处理呢?

我认为这种情况的发生要归因于两个人:阿兰·图灵(Alan Turing)和约翰·冯·诺依曼(John von Neumann)。他们都是历史上最著名的黑客。图灵对什么是可计算的事情感兴趣。以他的名字命名的机器——图灵机,并不是实验方法,而是一个理论模型。图灵机有一个机器头,它可以读写储存在纸带上的符号。这听起来很简单,图灵机具有非物质的特性,而持续和互动又都是物理状态的属性。但在冯·诺依曼体系结构的机器中,这种功能上的隔离非常复杂。即使如今每一台计算机都应用了冯·诺依曼的体系结构,但它仍不是一条普遍真理。相反,在他的报告中,对编程在早期计算机中的局限性已有明确的说明。

图灵和冯·诺依曼都了解自己模型的局限性,在晚年,他们都对空间结构中的计算进行了研究:图灵机采用的是模式形成的方式,冯·诺依曼采用的则是自我复制的方式。但他们留给后世的却是几乎任何处理器都要依靠指令指针寄存器,这也就是图灵机的机器头读取纸带信息这个原理的延伸。其他所有指令并未显示会消耗信息处理资源,因为它们不处理信息。

在自然界中,每时每刻都在发生各种事情。虽然计算机产业已经开发出了计算设备,但还有一部分人在研究一个更小的分支领域——计算物理学。在传统计算机科学以外的领域,已经发明了用于计算量子纠缠和叠加的量子计算机,用于运输物质以及信息的微流控逻辑,解决连续装置自由度数位问题的模拟逻辑,以及可编程物质代码结构的数位构造。最重要的是,程序设计模型正在形成,它代表了物质资源并且尊重物质资源,而不是将物质资源看成是需要推开的麻烦。这将越来越容易而不是越来越简单,因为它避免了从非物质世界转换到物质世界的所有问题。

在电影《黑客帝国》(The Matrix)中,主角尼奥要在红色药丸和蓝色药丸之间做出选择,红色药丸可以让他退出一直居住的虚构世界,而蓝色药丸可以维持他的幻觉。他发现虽然从虚拟回到现实更加混乱,但最终的结果还是令他更满意。而在数字世界面前也存在着类似的选择:是逃避还是拥抱数字世界取决于其中的物理现实?

图灵机和冯·诺依曼体系结构作为技术前进的车轮,已经为我们提供了非常好的前进的工具。但有些事情需要我们重新去做:将物理单位引入软件中,从而为终极的通用计算机编程,也就是宇宙。