Mis on Turingi täielikkus?

Turingi täielikkus on see, kui programmeerimiskeel suudab täita Turingi masina funktsioone. See on väga lihtsa mehaanilise arvuti kontseptsioon, mida mõnikord kirjeldatakse kui kõige lihtsamat masinat, mida võib pidada arvutiks. Peaaegu kõik tänapäeval kasutatavad programmeerimiskeeled ja teoreetiliselt ka arvutid, mis neid käitavad, on Turingi täielikud.

Turingi täielikkuse kontseptsioon pärineb Alan Turingilt, Briti arvutiteadlaselt, kelle töö hõlmas Teise maailmasõja ajal kodeeritud sõnumite dešifreerimist. Tema arvutustööde hulgas oli filosoofia väljatöötamine selle kohta, mida arvuti tegelikult teha võiks. See hõlmas kontseptsiooni, et arvutid töötavad lihtsalt algoritme käivitades. See tähendab, et nad järgivad andmete töötlemiseks ja omakorda probleemide lahendamiseks kindlaid reegleid. See tähendab, et arvuti ei “mõtle” ega tee otsuseid nii, nagu inimene seda suudab.

Kontseptsiooni illustreerimiseks kirjeldas Turing hüpoteetilist masinat, mida ta nimetas “a-masinaks”, kus “a” tähistab automaatset; teised nimetasid seda hiljem Turingi masinaks. Masin töötles lindirulli, mis võib liikuda tagasi või edasi ja sisaldas rida sümboleid. Masin võib igal hetkel töödelda ühte sümbolit ja vajadusel seda muuta. Selle kontseptsiooni mõttes võis lindirull olla lõpmatult pikk, mis tähendab, et arvuti mälu ei olnud oma olemuselt piiratud. See on analoogia ideele, et kui arvutil on juhiste kogum, mida järgida, on andmemaht, mille jaoks neid juhiseid rakendada, ainult füüsiliste piirangutega.

Irooniline on see, et enamikul tänapäeva arvutitel ei ole tegelikult Turingi täielikkust. Seda seetõttu, et neil on piirangud saadaolevale salvestusruumile ja seega töödeldavatele andmetele. Neil on ka füüsilised piirangud, eelkõige see, et lõpuks nad kuluvad. See on tegelikult programmeerimiskeel, millel on Turingi täielikkus. Seetõttu ei ole sellist programmi töötav arvuti Turingi arvuti, vaid seda saab kasutada selle simuleerimiseks.

Turingi täielikkust ei tohiks segi ajada Turingi testiga. See oli Turingi loodud eksperiment, et näha, kas arvutid suudavad vestelda loomulikus keeles. Testi põhimõte on, et kui inimene ei suuda teha vahet ainult tekstipõhisel vestlusel arvutiga ja teise inimesega, siis arvuti läbib testi. Kuigi mõned arvutid on testi läbinud, kui vestlusteemade ulatus on piiratud, pole ükski seda teinud piiranguteta vestluses.