Introduction to the theory of programming languages - Meyer, Bertrand (Prentice Hall, 1990)