Semantics of Programming Languages exposes the basic motivations and philosophy underlying the applications of semantic techniques in computer science. It introduces the mathematical theory of programming languages with an emphasis on higher-order functions and type systems. Designed as a text for upper-level and graduate-level students, the mathematically sophisticated approach will also prove useful to professionals who want an easily referenced description of fundamental results and calculi.
Basic connections between computational behavior, denotational semantics, and the equational logic of functional programs are thoroughly and rigorously developed. Topics covered include models of types, operational semantics, category theory, domain theory, fixed point (denotational). semantics, full abstraction and other semantic correspondence criteria, types and evaluation, type checking and inference, parametric polymorphism, and subtyping. All topics are treated clearly and in depth, with complete proofs for the major results and numerous exercises.
About the Author
Carl A. Gunter is Professor in the Department of Computer and Information Science at the University of Pennsylvania.
"Gunter's book treats the essence of programming language theory—the span between the "meaning" of a computer program, and the concrete and intricate ways in which programs are executed by a machine. He brings together the established theoretical advances in this range. It is rewarding for someone who has played a small part in these developments to see them laid out so expertly, and with such pedagogic concern; readers new to the field—and many who already know a lot about it—will also be rewarded by following its carefully designed path."
—Professor Robin Milner, University of Edinburgh