Concepts of programming languages - SEBESTA, Robert W (Addison Wesley, 2002)