Turingov stroj je filozofska konstrukcija za delovanje računalnika, ki jo je leta 1936 izumil Alan Turing, slavni angleški matematik in logik 20. stoletja. Ideje za Turingovim strojem so osnova za vso sodobno računalniško programsko in strojno opremo, ki obstajajo od leta 2011, čeprav dejanski koncepti, ki jih je ustvaril Turing, niso bili nikoli uporabljeni za izdelavo dejanske naprave v tistem času in so bili izumljeni, preden so digitalni računalniki obstajali v realna oblika. Načela, po katerih deluje Turingov stroj, vključujejo nabor kontrol za vhodne in izhodne podatke, stroj za obdelavo podatkov v neki obliki in niz uveljavljenih pravil za to, kako te podatke stroj obdeluje.
Genij za odkritjem Alana Turinga je bil, da bi lahko katero koli dosledno skupino simbolov, ki predstavljajo pomembne informacije, kot so matematični simboli ali črke, ki sestavljajo jezik, stroj mehansko obdelal, če bi dobil ustrezen niz pravil za njihovo obdelavo. To bi povzročilo ustvarjanje mehanskih naprav, ki bi jim lahko postavljali logična vprašanja za kompleksne probleme in bi hitro prišli do nepristranskih odgovorov. Turingov stroj je bil v tem pogledu predhodnik računalniškega algoritma, ki je sestavljen seznam računalniških navodil, na katere se od leta 2011 zanašajo centralne procesne enote (CPU) v računalnikih.
Zasnova Turingovega stroja je bila po sodobnih računalniških standardih 21. stoletja poenostavljena, njegova fizična funkcija pa je bila nepraktična pri izvajanju, vendar so ideje, na katerih je bil zgrajen, imele trdne temelje. Stroj je bil sestavljen iz traku ali traku z vtisnjenimi simboli, ki jih je glava lahko prebrala, ko je bil trak speljan čeznj. Ko so bili simboli brani, bi priklicali določena stanja v stroju, ki bi usmerjala gibanje traku in vplivala na izhodne vrednosti, ki jih proizvaja stroj. Analogno sodobnim računalniškim sistemom iz leta 2011 bi bilo to, da trak predstavlja kodo ali algoritme računalniške programske opreme, bralnik je CPE, izhod pa bi bili sistemi za prikaz in prenos, kot so monitorji, zvočniki in tiskalniki, omrežni promet in drugo.
Ideje za Turingovim strojem so bile obravnavane kot temeljna funkcija izvajanja katere koli serije izračunov in jih je bilo mogoče primerjati tudi s tem, kako delujejo človeški možgani. Turing sam in drugi njegovega časa so verjeli, da je Turingov stroj mogoče prilagoditi tako, da izvaja praktično vse vrste predstavljivih izračunov in deluje kot univerzalni stroj za reševanje vseh človeških problemov. Vprašanje, ki se je kmalu pojavilo s konceptom, pa je znano kot Turingova tarpit in se nanaša na dejstvo, da čeprav lahko Turingov stroj obdela kateri koli samoskladen niz simbolov, pridobi takšen stroj za ustvarjanje smiselnih odgovorov na vprašanja se v celoti opira na vse bolj zapletene in večplastne sklope pravil obdelave.
Računalniška znanost je kmalu naletela na težave s tem, kako se lahko programska in strojna oprema, ki temeljijo na principih Turingovih strojev, zataknejo v nesmiselnih izračunih, znanih kot programske zanke. Logične omejitve so privedle do prilagoditev principov Turingovih strojev, kot so kvantni in verjetnostni Turingovi stroji. Verjetnostni Turingov stroj uporablja idejo, da se v stroju hkrati izvaja več trakov, da vzporedno proizvede različne rezultate, ki se nato utežijo drug proti drugemu glede na verjetnost, kateri rezultat je najverjetneje natančen. Takšni stroji bi sklepali na podoben način, kot deluje programska oprema z mehko logiko v naprednih nadzornih sistemih od leta 2011.
Kvantni računalnik, ki temelji na principu Turingovega stroja, bi imel trak neskončne dolžine s celicami simbolov v večnem nedoločenem stanju do branja. To bi zagotovilo obliko vzporedne obdelave, ki bi bila bistveno boljša od postopkov obdelave podatkov, ki se uporabljajo v računalnikih od leta 2011. Kvantni Turingovi stroji ponujajo možnost shranjevanja več vrednosti v posameznih celicah pomnilnika do dostopa, česar standardni računalniki, ki temeljijo na logiki, ne morejo narediti.