比如最早的齿轮计数器:机械之美——机械时期的计算设备
实质上就是把加减法映射到相应位的齿轮的旋转——加5,就旋转5齿;然后通过进位机构调整映射结果,自然就对应起来了。
类似的,电容器+电阻构成的RC电路配合脉冲输入,就是个天然的卷积计算器——既然我们的很多计算本身就是为了弄清物理量之间的数值关系,那么诸如积分之类算起来很复杂的东西,借助对应的物理过程自然就可以简单解决(因此早期就有很多借助电路原理搞的“积分计算机”)。
正是抓住了这个“一切计算归根结底都是集合之间的映射关系”的本质,图灵才提出了图灵机理论,并证明了这种机器可以完成一切计算任务——只除了停机问题。
根本上说,图灵设计了一个机制,使得特定的图灵机可以通过纸带(存储设备)读入其它映射规则,从而使得它能够模仿其它图灵机(能够模仿其它图灵机就是所谓的“图灵完备”)。
注意思想方向:并不是为了搞出计算机,人们去研究布尔代数研究别的什么理论;而是人类对一切规律都感兴趣,哪怕玩具一样“毫无意义”的布尔代数。
当我们临近计算机出现这个节点时,伟大的天才图灵抓住了其中几个点,提出了图灵完备概念;然后人们才循着这个理论的指引设计计算机——在这个设计过程中,那是抓到什么用什么,只要它能解决难题、提高效率或者稳定性。布尔代数(二值逻辑)就是在这时候被人从故纸堆里翻出来、派上了用场。
换句话说,没有什么是天然的、放在那里等你用、循序渐进自然而然就会出现的;实际情况是反过来,我们想要得到方便,于是就发明机械计算机/算盘/积分机等等玩意儿——但这些东西只能做特定计算,做不了通用计算;的确有一些人试图搞通用计算机,但我们并不知道他是否胸有成竹。直到图灵出现,切切实实的证明了通用计算机是可以搞出来的,思路就是计算=映射,那么计算规则就是映射规则,那么只要能识别各种各样的映射规则,通用计算自然就在眼前。
但方向只是方向。想要实际搞出来,还有很多很多的困难在等着人类。为了解决这些困难,人类才创造性的利用了过去来说毫无意义的玩具(布尔代数)或过于艰深似乎只是思维体操的其它理论、当然也把经常用的物理/电子/数学理论进一步拓宽应用领域、创造性的应用于计算机。
知识的应用主体向来都是人。知识是死的,人是活的。
因此,如果你真的想知道计算机的“前世今生”、想要弄明白“计算机究竟是什么”,不妨真的学会一门编程语言、继而真正搞懂图灵机的原理……
没有这样一番修炼,你就不可能真正明白别人说的是什么。
联系客服