A Practical Introduction to Denotational Semantics, Cambridge Computer Science Texts, No 23