Concepts of Programming Languages - Sebesta, Robert W.