Introduction to the Theory of Computation
Problem Language Finite Automaton Push down Automaton Turing Machine