
142
|
第 5 章
然而,這種特定形式的外部記憶體會對如何使用儲存之後的資料強加不便的限制。但只
要以更靈活的儲存機制替換堆疊,我們就可以消除這些限制並且增強運算能力。
儲存空間
在紙上編寫某些符號通常可以完成運算,我們可以假設這張紙被分成像是孩子
算術書的諸多方塊。基本的算術有時會用到這紙張的二維字元。但是這類的使
用也一定能夠避免,而我認為將會獲得同意的是,紙張的二維字元不是運算的
本質。接著我假設運算是在一維紙張完成,也就是在劃分成諸多方塊的磁帶。
—艾倫圖靈,可運算的數值,在可判斷性的應用
(
http://dx.doi.org/10.1112/plms/s2-42.1.230
)
圖靈的解決方法是為機器配備長度無限的空白磁帶(有效的一維陣列,可視需要在兩端
增加),並允許它在磁帶的任何位置讀取和寫入字元。單一磁帶同時當作儲存空間和輸
入:可以預先將一串字元填入磁帶當作輸入,而機器可以在執行時讀取那些字元,並在
必要時覆寫它們。
可以存取無限長度磁帶的有限狀態機稱為
圖靈機
(
Turing machine
,TM)。這個名稱
通常意指具有決定論規則的機器,但我們也可以稱它為
決定論圖靈機
(
deterministic
Turing machine
,DTM),以避免模糊不清。
我們已經知道下推自動機只能存取它外部儲存空間裡的單一固定位置(堆疊頂端),但
是這對圖靈機似乎限制太大了。提供磁帶的整個重點是允許任意數量的資料儲存在磁帶
的任何地方,並能以任何順序再次讀取,那麼我們該如何設計能和磁帶的整個長度互動
的機器呢? ...