Theory of Computation and Compilers - Semantic Analysis