圖靈完備,圖靈完全性通常指具有無限存儲能力的通用物理機器或編程語言。
圖靈完備意味著你的語言可以做到能夠用圖靈機能做到的所有事情,可以解決所有的可計算問題。
圖靈不完備也不是沒有意義, 有些場景我們需要限制語言本身. 如限制循環(huán)和遞歸, 可以保證該語言能寫的程序一定是終止的。
理解一下,就是說圖靈完備的語言,有循環(huán)執(zhí)行語句,判斷分支語句等。理論上能解決任何算法。但有可能進入死循環(huán)而程序崩潰。
圖靈不完備,應該是不允許或限制循環(huán)??梢员WC,每段程序都不會死循環(huán),都有運行完的時候。
以下是Stackoverflow回答:
以下是一個簡短的解釋。
一個圖靈完備系統(tǒng)意味著在這個系統(tǒng)中寫程序能夠找到解決方法(盡管不保證運行時和內存)。
因此,如果有人說,我的新東西是圖靈完備的,意思是在原則上(盡管不是經常在實踐上)它能夠用來解決任何計算性的問題。
有時,它是一個笑話,有人在vi上寫了一個圖靈模擬器,因此可以說vi是有史以來唯一需要的計算引擎。以下是維基百科解釋:
可圖靈指在可計算性理論中,編程語言或任意其他的邏輯系統(tǒng)如具有等用于通用圖靈機的計算能力。換言之,此系統(tǒng)可與通用圖靈機互相模擬。這個詞源于引入圖靈機概念的數學家艾倫·圖靈(Alan Turing)。
雖然圖靈機會受到存儲能力的物理限制,圖靈完全性通常指具有無限存儲能力的通用物理機器或編程語言。簡單來說,一切可計算的問題都能計算,這樣的虛擬機或者編程語言就叫圖靈完備的。
比特幣的腳本系統(tǒng)是圖靈不完備的,而一些競爭幣的智能合約系統(tǒng)是圖靈完備的,比如以太坊。各有優(yōu)缺點,圖靈不完備會更安全些,圖靈完備會更智能些。
a、順便一提,圖靈機是我們已知能實現的最強的計算模型。最近媒體經常報道的量子計算機仍然是圖靈機,只是特定算法快一些。
b、順便二提,根據Kleene正規(guī)型定理,任意偏遞歸函數都可以由原始遞歸函數經過一次極小化得來,所以寫程序的時候如果發(fā)現兩層以上的無限循環(huán)要格外小心,很可能邏輯是錯的。
參考
1、什么是“圖靈完備”?
2、以太坊“圖靈完備”是什么意思?
3、什么是圖靈完備?