Programming languages: Design and implementation - Pratt, Terrence W (Pearson Education, 2001)