我们通过计算机来拓展我们自己的大脑。最开始计算机被用来解决和算数有关的问题,但其自身的价值很快地延伸到了各个领域。像是运行互联网络,处理实时图像,制造人工智能,以及模拟整个宇宙等等。而其神奇的地方就在于这一切强大功能的背后,竟然仅是0和1的来回变化。
计算机正以无法置信的速度变小变快。现在手机的计算能力已经超过了60年代超级计算机计算能力的总和。当年阿波罗11号的整个登月系统如今甚至只需要在两个任天堂就能完成。计算机科学总的来说就是研究计算机能做什么。计算机科学如今已经扩展出了很多相互关联的分支,但我仍然把整个学科分成三个部分:计算机理论,计算机工程,以及计算机应用。
计算机理论
第一大分支:计算机理论。讲到计算机理论。我们得从计算机之父,创造了图灵机(Turing Machine)的阿伦·图灵讲起。图灵在一篇名为《论可计算机器判定问题的应用》一文中首次定义了“有限次运算”并提出了图灵机的原型。图灵机是一个对现在通用计算机的一个简单的描述,而并非一个实体的机器。之后的科学家们提出了很多计算机模型,但这些模型的根本都是图灵机。所以说图灵机也是现代计算机的理论基础。
图灵机与现代计算机
图灵通过对机器的描述为计算机的发展奠定了基础。然而与此同时,我们更加不能忘了另外一位与图灵密切相关的计算机科学家,他的博士导师——阿隆佐.丘奇。丘奇发明了lambda算子,通过整套严谨的数学理论描述出了计算机运算的概念。所有能用图灵机解决的问题都能用lambda算子进行等价的计算。如果图灵机的思想代表了算法和机器的原型,那么lambda算子则是现在所有的编程逻辑和语言的基础。
计算机工程
第二大分支:计算机工程。设计计算机是一个很大的挑战,因为要考虑到从底层硬件到上层软件很多不同的方面。设计者必须保证计算机能够以尽量优化的方式解决尽量多的问题。处理器(CPU)是计算机的中心,计算机执行的所有任务都经过处理器,并通过其进行调度。在单个处理器处理多个任务的时候,处理器需要在每项任务中来回执行,所有任务都能在用户可接受的时间里完成。
计算机应用第三大分支:计算机应用。
这个分支旨在使用计算机来解决现实生活中的各种问题。当你出门旅游的时候你希望找到最大的旅游性价比,这就涉及到了使用计算机解决最优解(Optimisation)的问题。最优解问题自古以来也是生意场上最重要的部分之一,因为正确的解答该问题能为公司省下巨额的资金。然而最优解的问题有时可能无法用计算机有效地得到答案,例如上述提到的在所有城市中找到能遍历所有且最短的一条路程。
于是有些人开始指望新的科技(例如人工智能或量子计算机),看他们是否能够为这类问题的解决带来转机。