Concepts of programming languages - Sebesta, Robert W. (Pearson international edition, 2006)