人类下一代语言的可能
作者:互联网
除了在纸笔媒介系统下以书面符号形式进行数学计算外,从一开始我们也设计和制造计算工具,利用这些工具来进行数学计算。 现代计算机是计算工具的最新产品。上世纪三十年代,英国数学家图灵(Alan Mathison Turing,1912.6-1954.6)提出了图灵机的概念,其基本原理如下。
1纸带
用于输入与输出,可以设想为一个无限长的纸带,纸带分为一个个单元格Rn,每个单元格上记录某个字符表中的一个字符R(a),或者为空。
2读写头
读写头可以在纸带上左右移动,其作用是:
读取当前单元格里的字符;
擦除当前单元格里的字符;
将一个字符写入当前单元格。
任意时刻读写头只能在一个单元格上操作,此单元格称为扫描单元格。
图中的控制器可分解为下面的逻辑部件:
3字母表
字母表包括了输入纸带单元格上可以有的字符,读写头可以写入单元格的字符,比如字符集是{“1”“0”“+”“=”“︺”}。
4状态集
图灵机在任意时刻都处于一种状态下,所有的状态构成状态集{s0、s1、s2、s3、s4、s5},其中包括:
开始状态s0、每次运行的开始都处于此状态;
停机状态s5、当图灵机进入此状态时,机器就停止运行,此状态下纸带留下的字符为计算结果或者问题无解。
5控制规则
读写头读取当前单元格的字符,结合当前机器的状态,可决定:
一、图灵机的新状态;
二、图灵机的响应操作,包括:
擦除:擦除当前单元格的内容;
写入:在当前单元格写入字符集中的一个字符;
移动:向左移动或向右移动。
图灵机的操作可抽象为:((当前状态、当前读入)→(新状态、当前写入、移动方向))。一个图灵机可能的(当前状态、当前读入)组合称为其格局,它们对应的控制规则决定了图灵机的行为。我们构造个简单的例子,这个例子是二进制个位数的加法运算。设计七种状态:(整体可以有不同的设计)
s0:初始状态;
s1:被加数=1;
s2:被加数=0;
s3:被加数、加数=1;
s4:被加数、加数不一致;
s5:被加数、加数=0;
S6: 停机状态。
字符表为{“1”“0”“+”}。
“擦除”操作表示清空单元格内容。
可制定的规则如下:
原状态 |
读取字符 |
写入字符 |
移动方向 |
目标状态 |
s0 |
1 |
1 |
右 |
S1 |
s0 |
0 |
擦除 |
右 |
S2 |
S1 |
+ |
+ |
右 |
S1 |
S2 |
+ |
+ |
右 |
S2 |
S1 |
1 |
擦除 |
左 |
S3 |
S1 |
0 |
擦除 |
左 |
S4 |
S2 |
1 |
1 |
左 |
S4 |
S2 |
0 |
擦除 |
左 |
S5 |
S3 |
+ |
0 |
无作用 |
S6 |
S4 |
+ |
擦除 |
无作用 |
S6 |
S5 |
+ |
擦除 |
无作用 |
S6 |
|
|
|
|
|
纸带上的输入是字符串“1+0=”,将进行的过程如下:
过程 |
开始 |
结束 |
状态 |
1 |
【1】+0 |
1+0 |
S0→s1 |
2 |
1【+】0 |
1+0 |
S1 |
3 |
1+【0】 |
1+ |
S1→s4 |
4 |
1【+】 |
1 |
S6 |
注:【】符号表示括号中的字母在当前单元格。