"First book-length exposition of the denotational (or mathematical' or functional') approach to the formal semantics of programming languages (in contrast to operational' and axiomatic' approaches). Treats various kinds of languages, beginning with the pure-lambda-calculus and progressing through languages with states, commands, jumps, and assignments. This somewhat discursive account is a valuable compilation of results not otherwise available in a single source."-- American Mathematical Monthly