图灵完备是什么?
圖靈完備(Turing Complete),圖靈完備是指機(jī)器執(zhí)行任何其他可編程計(jì)算機(jī)能夠執(zhí)行計(jì)算的能力。
圖靈完備也意味著你的語言可以做到能夠用圖靈機(jī)能做到的所有事情,可以解決所有的可計(jì)算問題。
?
簡單來講,一切可計(jì)算的問題都能計(jì)算,這樣的虛擬機(jī)或者編程語言就叫圖靈完備的。當(dāng)然圖靈完備也可能因?yàn)橄萑胨姥h(huán)而導(dǎo)致程序崩潰。
在某些場景中圖靈完備需要限制語言,有循環(huán)執(zhí)行語句,判斷分支語句等。
舉個(gè)例子,如果有人說,我的東西是圖靈完備的,也就意味著理論上它能夠用來解決任何計(jì)算性的問題。
此外,圖靈完全性通常指具有無限存儲能力的通用物理機(jī)器或編程語言。
與圖靈完備相反的是圖靈不完備,圖靈不完備應(yīng)該是不允許或限制循環(huán)。可以保證,每段程序都不會死循環(huán),都有運(yùn)行完的時(shí)候。
比特幣的腳本系統(tǒng)是圖靈不完備的,而一些Token的智能合約系統(tǒng)是圖靈完備的。
圖靈完備和圖靈不完備各有其優(yōu)勢,圖靈不完備會更安全些,圖靈完備會更智能些。
?
類似以太坊類似的圖靈完備的腳本語言,包括了循環(huán)的邏輯。然而為了保持網(wǎng)絡(luò)穩(wěn)定性,Celes會對最大的循環(huán)次數(shù)做出一定限制。根據(jù)通用圖靈機(jī)的概念,圖靈完備就是現(xiàn)代編程語言所能擁有的,可以達(dá)到的馮諾伊曼體系結(jié)構(gòu)所能達(dá)到的最高計(jì)算力。
一般來說,除了一部分腳本語言(如比特幣自帶的腳本語言)以外,大部分的計(jì)算機(jī)語言都是圖靈完備的。使用圖靈完備的腳本語言,可以在邏輯上做到和其他編程語言兼容,并在理論上能夠?qū)崿F(xiàn)任何其他語言所能實(shí)現(xiàn)的邏輯,以及最大限度的復(fù)制現(xiàn)實(shí)的商業(yè)邏輯。
Celes將會專門開發(fā)的一套腳本語言。這套腳本語言能提供“圖靈完備”(Turing Complete)的邏輯,還留有與現(xiàn)實(shí)法律合規(guī)兼容的功能,這樣使開發(fā)者可以開發(fā)完整的邏輯。
此外,針對所編寫的邏輯,Celes會進(jìn)行運(yùn)行該邏輯所消耗的計(jì)算機(jī)資源進(jìn)行評估。開發(fā)好的商業(yè)邏輯交給虛擬機(jī)在去中心化的網(wǎng)絡(luò)內(nèi)自動(dòng)運(yùn)行。商業(yè)邏輯一旦生成,就不能被篡改。
總結(jié)
- 上一篇: 学习区块链,绕不过去的“拜占庭将军问题”
- 下一篇: MySQL官方提供的测试数据库脚本和数据