2010-08-21 49 views
7

如果取原始圖靈機定義如下:原始圖靈機上的操作的彙編語言等價物是什麼?

...無限 帶標示出 成正方形的形式獲得,在每一個無限的存儲容量 其中的符號可以是打印。在任何時刻 機器上都有一個符號 ;它被稱爲掃描符號。機器 可以更改 已掃描的符號,其行爲部分取決於該符號,但其他位置的磁帶上的 符號不會影響機器的行爲。然而, 磁帶可以通過機器來回移動,這是 之一的機器的基本操作。磁帶上的任何符號可能會由 因此 最終有一局。 (圖靈1948年,第61頁)

如果你想映射這些操作到那些在能夠解釋彙編/二進制指令的處理器上完成的操作 - 哪些操作將被映射?

(我知道從圖靈機馮·諾依曼的機器在這個問題中固有的跳轉的)

+0

如果這是家庭作業,請標記爲這樣。 – danben 2010-08-21 13:08:02

+1

8年前完成Uni - 這僅僅是爲了興趣。 – hawkeye 2010-08-21 13:11:43

回答

7

讀你寫我說你什麼只需要:

  • 一直接增量指令(添加到當前磁帶位置)
  • 間接增量指令(用於移動磁帶)
  • 東西在目前大盤位置值

在ARM形組件的響應行動,例如,如果你有一個包含R0磁帶上的地址,你應該只需要

ADDS r0, r0, #1 ;moves the tape forward 
ADDS r0, r0, #-1 ;moves the tape backwards 
ADDS [r0], [r0], #1 ;increments the value 'pointed by' the tape 
ADDS [r0], [r0], #-1 ;decrements the value 'pointed by' the tape 

然後,樹枝做的東西在當前符號

BEQ Somewhere 

這或多或少Brainfuck是如何工作的假設一定值的情況。

3

在一個無限帶的標出來成正方形的形式獲得,在一個無限的存儲容量每一個都可以打印符號。

讓我們調用一個int數組。 int[] Symbols

在任何時候有在機器的一個符號;它被稱爲掃描符號。

int inxSym; 
int scannedSymbol = Symbols[inxSym]; 

(在CPU的水平,這被稱爲 「主存儲器」 或在現代系統 「節目片段」。

機器可以改變掃描符號

Symbols[inxSym] = newSymbol; 

和其行爲的一部分由該符號確定,

switch(scannedSymbol) {....} 

(在CPU的水平,這是 「執行指令」。沒有操作代碼可以告訴它這樣做;這正是CPU所做的。)

但是其他地方磁帶上的符號不影響機器的行爲。

那裏沒有什麼可以做的。

但是,磁帶可以來回移動通過機器,這是本機的基本操作之一。

++inxSym; 
    --inxSym 
    inxSym +=10; 
// etc. 

(在CPU的水平,這與JMP的操作碼處理)

0

由於圖靈機完全由它讀取磁帶它將使最有意義做出那樣的表

讓我們稱之爲狀態QN的語言磁帶和國家機器上的alfabet的定義確定,Alfabet人物艾從磁帶上讀取。機器從transisiton表中確定下一個狀態,並寫入敖到磁帶並沿方向d:L/R

機器可然後通過寫入其

QnAi被定義 - > QmAoD

從維基百科加法方案將隨即成爲

QbA0 -> QbA1R 
QbA1 -> QbA1R 
Q0A- -> Q0A-L 
Q1A0 -> QrA-L 
Q1A1 -> QaA-L 
Q1A- -> QrA-L 

機智接受狀態和r拒收狀態。這非常緊湊並且可讀的傳輸矩陣表示。

這當然假定磁帶上的內容被解釋爲數據。但是沒有任何東西可以阻止任何人創建轉換矩陣來使狀態機從磁帶上解釋指令。

爲了實現這個,你在左邊有一個元組,在右邊有一個三元組,因此這個映射在二維數組中的一個查找中以讀取三元組。用磁帶上字符的#位移動狀態並將它們粘在一起。相乘(ok,另一個移位操作)爲三元組騰出空間,並將其用作表中的偏移量以讀取三元組。

在狀態寄存器中寫入新狀態,在磁帶上寫入字符,如果在三元組中找到數據或停止在那裏沒有數據,則會遞減。裝配應該很有趣。

1

我不知道這是否是100%正確的,但它會去是這樣的:

  • 圖靈機頭(就是那個「掃描」在給定的時間符號)是等同於指令指針。
  • 指令提取和解碼階段因此等同於對掃描符號的解釋。
  • 執行將被表示爲更復雜的TM操作序列。例如,讓我們進行一次內存寫入:將頭移到給定的內存位置,將數據從寄存器移動到該位置,返回到由IP寄存器尋址的位置並增加它。

請注意,頭部運動控制等同於流量控制指令,即JMP及其兄弟。

另請注意,寄存器是經典TM的重要補充。它們可以在磁帶上表現爲特殊的細胞(或細胞組)或作爲獨立的實體。有關更多詳細信息,請參閱register machine

最後,重要的是要提到,雖然這對馮諾依曼體系結構完美適用,哈佛架構使用兩個不同的磁帶,一個用於指令,一個用於數據。