2015年3月1日 星期日

圖靈機

電腦科學界的大師Alan Turing隨著影片「模仿遊戲」重新被大眾認識。Turing所發明的圖靈機(Turing Machine)是可計算機器的一個數學模型,現代電腦的可計算能力與其等價,所以有些報導(如http://www.cool3c.com/article/89381)說他是現代電腦之父。不過現代電腦其實是基於馮紐曼架構(von Neumann architecture)設計出來的。

圖靈機把要執行的演算法(程式)嵌在其設計規則中,將要處理的資料放在紙帶(tape)上。嚴格來講,一個特定的圖靈機設計對應了一個特定的演算法,或者 說一個特定的程式。我們可以說對任何演算法我們都可以設計出對應的圖靈機來執行它的計算,但此圖靈機比較像是程式已經寫死的一台電腦,與現代可程式化 (programmable)的電腦有段距離。

Turing描述過一種概念,就是將圖靈機的設計(程式規則)編碼成字串,打印在紙帶中,再設計一個通用的圖靈機 (Unieversal Turing Machine),可讀入任何圖靈機的設計,再執行原圖靈機設計的功能。這就比較像現代電腦。不過Turing只是描述過此種概念,真正將此概念實現出來的是另外一位電腦科學界的大師馮紐曼(John von Neumann)。

馮紐曼架構設計了通用的計算單元(CPU),將要執行的程式與資料放在記憶體中。在馮紐曼架構中要執行不同的程式,只要重寫記憶體的內容即可,通用計算單元的設計是不變的。不知道馮紐曼當初是否有受到圖靈的啟發,但這兩位都是了不起的天才就是了。

沒有留言:

張貼留言