Turingův stroj je jednoduché abstraktní výpočetní zařízení, které se používá ke studiu vypočitatelnosti – tedy ke zjištění, které problémy s jeho použitím vyřešit lze a které ne. V roce 1937 jej definoval původem anglický filozof, matematik a kryptograf Alan Mathison Turing.
Motivací k jeho vytvoření se stal tzv. Entscheidungsproblem (rozhodovací problém), který zformuloval v roce 1900 matematik David Hilbert. V něm se ptal, zda existuje mechanický proces, kterým je možné rozhodnout o pravdivosti libovolného matematického výroku. Pomocí Turingova stroje bylo později dokázáno, že to možné není.
Ještě před sestrojením prvního počítače se Turing zajímal o to, co je to přesně ona „vypočitatelnost“. Intuitivně tušil, že souvisí s existencí nějaké konečné sekvence akcí, která povede k vyřešení daného problému. Takovou sekvenci můžeme nazvat algoritmem. Jedna z interpretací tzv. Church-Turingovy teze říká, že ke každému algoritmu lze sestrojit ekvivalentní Turingův stroj.
Mějme nekonečné jednorozměrné pole buněk (cells), které nazveme páskou (tape). Každá buňka má kapacitu pro uložení právě jednoho symbolu z páskové abecedy. Ze začátku jsou na celé pásce uloženy pouze prázdné symboly.
S páskou pracuje čtecí a zapisovací hlava (head), která se vždy nachází právě nad jednou buňkou, se kterou pracuje. Hlava je schopná z aktuální buňky symbol přečíst, přepsat jej symbolem jiným a pohybovat se o krokově o jednu buňku vlevo či vpravo.
Turingův stroj je uspořádaná sedmice:
€€ \begin{align*} M &= \{ Q,q_0,F,A,\epsilon,B,\delta \} \\ |Q| &< \infty \\ q_0 &\in Q \\ F &\subseteq Q \\ |A| &< \infty \\ \epsilon &\in A \\ B &= A \setminus \{ \epsilon \} \\ \delta &: (Q \setminus F) \times A \rightarrow Q \times A \times \{ L,R \} \\ \end{align*} €€Vysvětlení přechodové funkce: Turingův stroj se nachází v určitém stavu (Q) a přečetl symbol z pásky (A). Symbol na pásce nahradí jiným symbolem (A), přejde do jiného stavu (Q) a hlava se pohne vlevo (L) či vpravo (R). Přechodová funkce se nazývá „částečná“ proto, že nemusí být definovaná pro všechny možné kombinace stavů a vstupních symbolů. Konečné stavy nemají přechody vůbec definované.
Podobně jako počítač, i Turingův stroj má omezenou vnitřní paměť (konečná množina vnitřních stavů). Na rozdíl od něj však disponuje nekonečně dlouhou páskou, kterou používá jako paměť pro mezivýpočty. Jeho chování je řízeno přechodovou funkcí, kterou je možné chápat jako analogii k procesoru, řízeným programem. Výpočetní proces je pak analogií k řadiči mikroprocesoru.
Instrukční sada Turingova stroje je následující: