The Formal Semantics of Programming Languages by Glynn Winskel