人们很容易认为计算机不是PC就是Mac,因为那是我们最常见到的。实际上,还有很多其他类型的计算机。这些计算机无论大小,都具有相同的核心特性,即都能完成逻辑运算,并且都具有类似的体系结构,只不过在设计的时候会不同程度地考虑成本、供电、大小、速度等因素。手机和平板电脑也是计算机,它们运行操作系统并支持更加丰富多样的运算环境。比这还小的系统是嵌入式系统,日常生活里能见到的几乎所有数字设备里都有嵌入式系统,比如数码相机、摄像机、GPS导航系统、家电、游戏机,等等 。

更大的计算机在很多年前就已经实现多个CPU共享内存了。如果能把大任务分解成小任务,而分解后的小任务又可以通过不同CPU协作完成,CPU相互之间不会出现太长的等待,也不会有太多的相互干扰,那么就能以这种方式加快完成大任务。除了在大型系统中广泛应用,这种集成多个处理器的多核芯片在个人计算机中也已经司空见惯,而且未来很可能会普及。

超级计算机往往有大量的处理器和大量的内存,这些处理器本身可能带有一些特殊指令,在处理某种数据时,它们比通用的处理器速度更快。今天的超级计算机通常是高速计算机集群,CPU仍然是普通的CPU,并没有什么特殊的硬件。网站top500.org每六个月就重新公布一次全世界最快的500台计算机。最快速度的纪录不断被打破,几年前还能跻身排行榜前几名的计算机,今天可能已经在榜单上找不到了。2011年6月最快的计算机有50多万个CPU,每秒可以执行8×1015次数学运算。

分布式计算指的是很多更加独立的计算机(比如不共享内存),而且地理上更加分散,甚至位于世界的不同地方。这样一来,通信更加成为瓶颈,但却能够实现计算机之间的远距离协作。大规模的Web服务,比如搜索引擎、在线商店和社交网络,都是分布式计算系统。在这种系统中,数以千计的计算机协作,可以为海量用户迅速地提供结果。

所有这些计算系统都有相同的基本原理。它们都使用通用处理器,可以通过编程完成无穷无尽种任务。每个处理器都有一个有限的简单指令表,能够完成算术运算、比较数据、基于前置计算结果选择下一条指令。不管物理结构的变化让人多么眼花缭乱,它们的一般体系结构从1940年代至今并没有太大的变化。

或许很难想象,这些计算机都具有相同的逻辑功能,可以完成一模一样的计算(暂且不论对速度和内存的要求)。1930年代,这个结果就已经被几个人分别独立地证明过,其中包括英国数学家艾伦·图灵。对于非专业人员,图灵的手段最容易理解。他描述了一个非常简单的计算机(比我们的玩具计算机还简单),展示了它能够计算任何可以计算的任务。他描述的这种计算机,我们今天叫做图灵机。然后,他展示了如何创建一种图灵机,模拟其他图灵机,这种图灵机现在被称为通用图灵机。写一个模拟通用图灵机的程序很容易,而写一个程序让通用图灵机模拟真实的计算机也是可能的(尽管不容易)。实际上,从能够计算什么的角度讲,所有计算机都是等价的,尽管运行速度明显不可能等价。

第二次世界大战期间,图灵从理论转到实践:他领导开发了用于破译德军情报的计算机。1950年,他发表了一篇名为“计算机器与智能”(Computing machinery and intelligence)的论文,其中提出一个测试(即今天所谓的图灵测试),人们可以通过该测试来评估计算机是否能表现出人类的智能。想象一下,一台计算机和一个人,通过键盘和显示器与另一个提问者交流。通过问答,提问者能确定哪个是人,哪个是计算机吗?图灵的想法是,如果不能明显地将二者区分开,那么计算机就表现出了智能的行为。

缩写词CAPTCHA中包含图灵的名字,这个缩写词代表“Completely Automated Public Turing test to tell Computers and Humans Apart”(用以区分计算机和人的完全自动化的公共图灵测试)。CAPTCHA(可以理解为“验证码”)就是一些扭曲变形的字母,广泛用于验证网站的用户是人而非程序:

enter image description here

CAPTCHA是一个反向图灵测试,因为它利用了人比计算机更擅长识别文字这一特点,来达到区分人和计算机的目的。

图灵是计算机领域最重要的人物之一,他对人类理解计算做出了重大贡献。计算机科学领域的诺贝尔奖——图灵奖,就是以图灵的名字命名的。后面几章将陆续介绍一些获得过图灵奖的重要计算机发明。


本文节选自图灵采用敏捷出版方式发布的新书《计算机基础》(D is for Digital)第3章。