Automata Theory And Computation Basics