Theory of Computation and Compilers - Turing Machines