136
5
章 究極の機械
がありました。スタックをもっと柔軟なストレージに置き換えることによって、そうした制限を取り除
き、機械の能力を高めることができます。
5.1.1
ストレージ
計算は通常、紙の上に特定のシンボルを書くことで実行されます。この紙は子供が使う算数ノートの
ように、マス目で区切られているものとします。算数では紙の
2
次元特性を利用することがあります
が、それは常に回避可能であり、紙の
2
次元特性は計算にとって不可欠なものではないことに同意で
きるでしょう。計算は
1
次元の紙、すなわちマス目で区切られたテープ上で実行されるものとします。
―
アラン・チューリング「
On Computable Numbers, with an Application to the
Entscheidungsproblem
」(
http://dx.doi.org/10.1112/plms/s2-42.1.230
)
チューリングのとった解決策は、機械に無限の長さの空白のテープ(事実上、必要に応じて両端を伸
ばせる1次元配列)を持たせて、テープの任意の場所に文字を読み書きできるようにすることでした。
この1 本のテープがストレージと入力の両方の役割を果たします。事前に、そのテープを入力として扱
う文字列で埋めておきます。機械は計算を実行しながら、そのテープにある文字を読み、必要に応じ
て上書きすることができます。
この無限の長さのテープにアクセスする有限状態機械のことを、チューリングマシン(TM:Turing
Machi