Investor's wiki

Turing lokið

Turing lokið

Turing Complete vísar til vélar sem, með nægum tíma og minni ásamt nauðsynlegum leiðbeiningum, getur leyst hvaða reiknivanda sem er, sama hversu flókin hún er. Hugtakið er venjulega notað til að lýsa nútíma forritunarmálum þar sem flest þeirra eru Turing Complete (C++, Python, JavaScript osfrv.).

Hvað er Turing vél?

Fyrir nútíma tölvur setti Alan Turing fram tilgátu um að einn daginn yrði til vél sem gæti leyst hvaða vandamál sem er. Þessi vél varð þekkt sem Turing vélin.

Alan ímyndaði sér vélina sína sem langt borði með upplýsingum skrifaðar á það í formi tvíundarkóða (1s og 0s). Vélin væri einnig með les-/skrifhaus sem færist meðfram segulbandinu og les hvern ferning, einn af öðrum. Kóðinn myndi spyrja vélina um tölvuvandamál og spólan væri eins löng og þyrfti til að ná lausn.

Þegar höfuðið hreyfist meðfram borði fylgir vélin einföldum leiðbeiningum sem stjórna því hvernig hún bregst við. Það les spóluna, fylgir leiðbeiningunum og framkvæmir ákveðna aðgerð til að skrifa nýjan kóða þegar hann hreyfist áfram. Þetta nýja mynstur kóða er svarið við vandamálinu. Hugmyndavél Turing gat svarað hvaða reiknivanda sem er sem hægt var að tjá í kóða (og sem hafði reiknanlegt svar).

Tæki eða forritunarmál er talið vera Turing Complete þegar það getur endurtekið Turing vél með því að keyra hvaða forrit sem er eða leyst vandamál sem Turing vél gæti keyrt eða leyst. Á hinn bóginn, ef tæki eða forritunarmál geta ekki gert það, þá er sagt að það sé Turing Incomplete.

Einföld reiknivél er dæmi um kerfi sem er Turing Incomplete þar sem það getur aðeins gert nokkrar tegundir útreikninga. Aftur á móti er hægt að líta á forritanlegan vísindareiknivél (getur til að framkvæma alls kyns útreikninga) sem Turing vél.

Blockchain og Turing heilleiki

Þó að sum forrit blockchain tækni séu Turing Complete, eru önnur Turing Incomplete. Þetta er mismunandi eftir forskriftartækninni sem er innleidd. Til dæmis er forskriftarmálið sem notað er í Bitcoin viljandi hannað sem Turing Incomplete vegna þess að það þjónar tilgangi sínum og aukið flókið myndi hugsanlega skapa vandamál. Með því að hafa það einfalt geta verktaki spáð fyrir um með mikilli nákvæmni hvernig það mun bregðast við í þeim takmarkaða fjölda aðstæðna sem það er notað í.

Ethereum er aftur á móti byggt sem Turing Complete blockchain. Þetta er mikilvægt vegna þess að það þarf að skilja samningana sem mynda snjalla samninga. Með því að vera Turing Complete hefur Ethereum getu til að skilja og innleiða hvaða framtíðarsamning sem er, jafnvel þá sem ekki hefur verið hugsað um ennþá. Með öðrum orðum, Turing Completeness Ethereum þýðir að það getur notað kóðagrunn sinn til að framkvæma nánast hvaða verkefni sem er, svo framarlega sem það hefur réttar leiðbeiningar, nægan tíma og vinnslukraft.