架构思维训练之自己推导图灵机(16)

而我们用机器计算本质上就是让机器处理信息,当然可以借鉴人对信息的处理方式来实现了。这个思路对软件开发领域的影响很大,比如面向对象、并行计算等。 本教程的后续章节,也将沿用这个思路进行推导。

第二,推导中先设置了一个具体的解题场景,再由此推导出图灵机模型,而图灵机是可以解决任何可计算问题的。这说明我们从一个从具体解决场景推导出了一个普遍解决方案。这个过程是如何实现的呢?

下面我将用读写头的推导过程为例进行说明。首先,我们通过3个问题分析了大脑的解题过程,这是面向具体场景的并且分析了过程中的各个环节,因此这是对具体场景的分解及分析。接着,在前面分析的内容之上,我们提出了一些概念比如:输入、输出、固化的运算逻辑、状态存储等,这些概念正是对具体内容的提炼。最后,我们理清这些概念的关系并封装到读写头中,再确定读写头与存储带的协作方式从而得出图灵机,这是一个概念的整合过程。正是利用了“分解—提炼—整合”的思维方式,实现了从具体场景到普遍方案的推导,这就是抽象思维过程。

抽象思维在软件开发中是提炼通用组件、构建架构的关键能力,如果你具备这种能力,那么恭喜你。如果你不善此道,也没关系,抽象思维是可以被训练的,而且必须要在生活及工作中刻意训练才能运用自如。这里咱不空谈方法,本教程后面会有大量抽象思维的推导过程,各位读者只需看完后(如本节图灵机的推导)掩卷而思,重新推导复盘,久习之必有所得。

推荐阅读