"Programming languages embody the pragmatics of designing software systems, and also the mathematical concepts which underlie them. Anyone who wants to know how, for example, object-oriented programming rests upon a firm foundation in logic should read this book. It guides one surefootedly through the rich variety of basic programming concepts developed over the past forty years."-- Robin Milner, Professor of Computer Science, The Computer Laboratory, Cambridge University "Programming languages need not be designed in an intellectual vacuum; John Mitchell's book provides an extensive analysis of the fundamental notions underlying programming constructs. A basic grasp of this material is essential for the understanding, comparative analysis, and design of programming languages."-- Luca Cardelli, Digital Equipment Corporation Written for advanced undergraduate and beginning graduate students, "Foundations for Programming Languages" uses a series of typed lambda calculi to study the axiomatic, operational, and denotational semantics of sequential programming languages. Later chapters are devoted to progressively more sophisticated type systems.
This book develops several typed lambda calculus-based toy languages and describes their semantics using category theory, universal algebra, model theory and rewriting systems. I must say that Stanford undergraduates are pretty smart if they understand all this stuff.
This book, is something, I might have found some value, in several years ago; however, I found it to be of limited interest at this point. There are some logicians mentioned here, which I don't recall, Henke for example- Kripke's modal logic work I also haven't studied. I am not sure I would recommended this, but it depends on one's interest. A lot of the mathematics is specific to development in semantic models.