Models of Computation and Formal Languages