Rozhodovací problém je množina otázek (případů) s odpověďmi ANO/NE. Každý rozhodovací problém se dá popsat (charakterizovat) nějakým formálním jazykem. Tento jazyk obsahuje popisy všech případů problému s odpovědí ANO.
Jazyk je rekurzívně spočetný, je-li přijímán nějakým Turingovým strojem (takových strojů může být více). Pokud existuje Turingův stroj, který jazyk přijímá a který se zastaví pro jakýkoli vstup (i tehdy, když nedojde do koncového stavu), nazývá se jazyk rekurzívní. Každý rekurzívní jazyk je i rekurzívně spočetný, obráceně to platit nemusí.
Intuitivně nazveme problém rozhodnutelným, jestliže existuje algoritmus, který umí správně zodpovědět (rozhodnout) každý jeho případ. To je ekvivalentní požadavku, aby jazyk charakterizující problém byl rekurzívní. Proto je pro nás důležité studovat vlastnosti rekurzívních a rekurzívně spočetných jazyků.
Existují jazyky, které nejsou rekurzívně spočetné, dokonce je jich velké množství. Existence aspoň jednoho takového jazyka označeného , který není akceptován žádným Turingovým strojem, se dá dokázat sporem, tzv. diagonalizační metodou. Název metody vychází z použití rovinného grafu s dvěma kolmými osami. Na jednu osu umístíme všechny Turingovy stroje a na druhou osu jejich vstupní slova. Budeme (mylně) předpokládat, že existuje Turingův stroj přijímající a na diagonále (úhlopříčce) grafu dojdeme k logickému paradoxu, čili sporu. Tím je předpoklad vyvrácen, tedy jazyk skutečně není rekurzívně spočetný.