图灵机是最早的计算机,计算机发展史之图灵机
大家都知道計(jì)算機(jī)是可以完成運(yùn)算的。那大家知道以前的計(jì)算機(jī)是怎么樣完成運(yùn)算的嗎?今天我們就來講解一下,以 圖靈機(jī)和紙帶來講解。
根據(jù)維基百科解釋,圖靈機(jī)包括以下四個部分:
1. 一條無限長的紙帶TAPE。
紙帶被劃分為一個接一個的小格子,每個格子上包含一個來自有限字母表的符號,字母表中有一個特殊的符號表示空白。紙帶上的格子從左到右依次被編號為0, 1, 2, ...,紙帶的右端可以無限伸展。
2.?一個讀寫頭HEAD。
該讀寫頭可以在紙帶上左右移動,它能讀出當(dāng)前所指的格子上的符號,并能改變當(dāng)前格子上的符號。
3.?一套控制規(guī)則TABLE。
它根據(jù)當(dāng)前機(jī)器所處的狀態(tài)以及當(dāng)前讀寫頭所指的格子上的符號來確定讀寫頭下一步的動作,并改變狀態(tài)寄存器的值,令機(jī)器進(jìn)入一個新的狀態(tài),按照以下順序告知圖靈機(jī)命令:
(1)寫入(替換)或擦除當(dāng)前符號;
(2)移動?HEAD, 'L'向左, 'R'向右或者'N'不移動;
(3)保持當(dāng)前狀態(tài)或者轉(zhuǎn)到另一狀態(tài)
4.?一個狀態(tài)寄存器。
它用來保存圖靈機(jī)當(dāng)前所處的狀態(tài)。圖靈機(jī)的所有可能狀態(tài)的數(shù)目是有限的,并且有一個特殊的狀態(tài),稱為停機(jī)狀態(tài)。
注意這個機(jī)器的每一部分都是有限的,但它有一個潛在的無限長的紙帶,因此這種機(jī)器只是一個理想的設(shè)備。圖靈認(rèn)為這樣的一臺機(jī)器就能模擬人類所能進(jìn)行的任何計(jì)算過程。
然后我們來說一下圖靈機(jī)如何進(jìn)行運(yùn)算的,要讓圖靈機(jī)進(jìn)行運(yùn)算,首先要準(zhǔn)備如下操作:
(1)紙帶上的符號初始化,如果計(jì)算,肯定要初始化數(shù)據(jù),紙帶上的1和 0 就是初始化的數(shù)據(jù)。
(2)設(shè)置好圖靈機(jī)控制器的當(dāng)前狀態(tài)
(3)把讀寫頭放置于開始的位置
(4)放入對應(yīng)的工作程序到圖靈機(jī),比如加法就放入加法的工作程序
5.?啟動圖靈機(jī)
圖靈機(jī)開始運(yùn)作之后,就會讀取紙帶上的符號和當(dāng)前正在執(zhí)行程序,來寫入或者擦除紙帶的相對應(yīng)的符號,并且根據(jù)程序的指令,移動紙帶,直至機(jī)器成功停機(jī),計(jì)算也就完成了。
講到這里相信大家肯定還是不太清楚,我們來圖片說明一下把:
在工作程序中,一共有五條指令,這五條指令都是一樣的。前兩項(xiàng)為條件。后三項(xiàng)為操作。
解釋一下沒有講到的符號:B=0(也就是空),R=向右移動一格,L=向左移動一格,H=位置不動。
當(dāng)機(jī)器開始執(zhí)行:獲取到紙帶上第一格的數(shù)據(jù),為1,然后當(dāng)前狀態(tài)為q1,我們來匹配,就匹配到第一條指令語句,然后就執(zhí)行后三項(xiàng)操作,當(dāng)前格寫入1,紙帶右移一格,把當(dāng)前狀態(tài)變?yōu)閝1。就這樣一直執(zhí)行下去,直到機(jī)器停止。
下面來看執(zhí)行過程:
到了最后一步,我們發(fā)現(xiàn)狀態(tài)為q3,讀取到數(shù)據(jù)為空(b),匹配第五條指令,第五條指令執(zhí)行操作,把當(dāng)前格寫入b(也就是空),
然后位置不動,狀態(tài)為q3.這樣每次都匹配到的是第五條,這樣機(jī)器就停機(jī)了,計(jì)算也就完成了。紙帶上的數(shù)據(jù)也就是計(jì)算的結(jié)果。大家可以根據(jù)初始數(shù)據(jù)和這張結(jié)尾數(shù)據(jù)。看出來這是個什么運(yùn)算嗎?
這就是計(jì)算機(jī)的計(jì)算原型,結(jié)尾附上圖靈機(jī)操作過程的視頻鏈接。
圖靈機(jī):
總結(jié)
以上是生活随笔為你收集整理的图灵机是最早的计算机,计算机发展史之图灵机的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据常见英文词汇(二)(待续)
- 下一篇: (吊灯止损和YOYO止损) --- AT