首先,图灵机不是一台被制造出来的机器,它是在图灵的论文中被描述的一个虚构的、可以进行简单操作的机器,笔者认为,此刻你尽可以将图灵机想象称为一个计算器,尽管图灵机是如此简单,但是图灵断言它在功能上等价于一个可以进行数学计算的人,它设置好这些数字来进行计算数字.作为示例,图灵给出的第一台机器科技计算1/3的二进制形式,图灵甚至创造了一个通用机器,它能模拟其他任何一台机器的操作.
图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的动作:
- 在纸上写上或擦除某个符号;
- 把注意力从纸的一个位置移动到另一个位置;
而在每个阶段,人要决定下一步的动作,依赖于(a)此人当前所关注的纸上某个位置的符号和(b)此人当前思维的状态。
在某些模型中,读写头沿着固定的纸带移动。要进行的指令(q1
)展示在读写头内。在这种模型中“空白”的纸带是全部为0的。有阴影的方格,包括读写头扫描到的空白,标记了1,1,B的那些方格,和读写头符号,构成了系统状态。(由Minsky(1967)p.121绘制)
为了模拟人的这种运算过程,图灵构造出一台假想的机器,该机器由以下几个部分组成:
- 一条无限长的纸带TAPE。纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号{\displaystyle \square }[站外图片上传中...(image-bee1f5-1586317453513)]表示空白。纸带上的格子从左到右依次被编号为0, 1, 2, ...,纸带的右端可以无限伸展。
- 一个读写头HEAD。该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。
- 一套控制规则
TABLE
。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态,按照以下顺序告知图灵机命令:- \1. 写入(替换)或擦除当前符号;
- \2. 移动 HEAD, 'L'向左, 'R'向右或者'N'不移动;
- \3. 保持当前状态或者转到另一状态
- 一个状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。参见停机问题。
注意这个机器的每一部分都是有限的,但它有一个潜在的无限长的纸带,因此这种机器只是一个理想的设备。图灵认为这样的一台机器就能模拟人类所能进行的任何计算过程。
来说一下比较重要的一个标签,“计算机科学之父”,那么究竟谁是计算机科学之父呢?有的地方称是图灵,有的地方称是阿冯(冯·诺依曼比较难打字),有的地方说的香农,有的地方称是三者合称.笔者不去讨论谁该拥有这个称号,希望该称号有利于读者去理解真正的计算机发展史.
在图灵的论文中,在展示样机之前,图灵就已经将机器限制为只打印1 和 0,这也是用来表示二进制的两个数字,使用二进制很明显是明智之举,但是在1937年的大多数读者来将说远没有我们今天想的那么显而易见,香农在1937奶的论文《继电器与开关电路的符号分析》中,描述了电路与布尔代数的等价性,香农肯定很推崇二进制.要明白一点,ENIAC也是一台使用了十进制的机器.但是图灵并没有阐述为啥要用二进制,但是在后续的论文中,二进制的好处开始显现.那为啥图灵就要使用二进制呢? 可能就是性灵
阿冯在1935年可能在普林斯顿大学就和图灵见过面.图灵于1936阿冯的程序与机器分离的思想,很难说不是参考了图灵的论文,