Practical Denotational Semantics (Cambridge Computer Science Texts)