Automata Formal Languages, and Turing Machines