Concepts of programming languages. - Sebesta, Robert W. (Addison-Wesley, 1996)