Concepts of programming languages - Sebesta, Robert W. (Pearson education, 2014)