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