Course Readings
Textbooks
[Win] 
The Formal Semantics of Programming Languages  An Introduction,
by Glynn Winskel.
The MIT Press, 1993 (Second printing: 1994).

[Bru] 
Foundations of ObjectOriented Languages.
by Kim B. Bruce.
MIT Press, 2002.
(Available online to UI students) 
[Har]  Practical Foundations for Programming Languages, by Robert Harper. Working draft, 2006. 
[Pie] 
Types and Programming Languages.
by Benjamin Pierce.
MIT Press, 2002.
(Available online to UI students) 
Additional Readings
Articles and Class Notes
[Car95] 
Type Systems,
by Luca Cardelli, The Computer Science and Engineering Handbook. CRC Press, 1997.
(Preprint)

[Nec05] 
Introduction to Axiomatic Semantics,
by George Necula, University of California at Berkeley.

[Pie95] 
Foundational Calculi for Programming Languages,
by Benjamin Pierce, The Computer Science and Engineering Handbook. CRC Press, 1997.
(Preprint)

Examples
 The Ocaml examples seen in class.
 An Ocaml implementation of IMP's operational semantics.
 Some more OCaml examples by Scott Smitt.
Recommended References
[Aab] 
Introduction to Programming Languages,
by Anthony A. Aaby, Walla Walla College.
Nice (if unfinished) overview of programming languages and programming paradigms. 
[And] 
Misprints and errors
in Glynn Winskel: The Formal Semantics of Programming Languages,
by Nils Andersen, DIKU.
Check them out as you go. 
[Lea] 
Introduction to the literature on semantics,
by Gary Leavens, ISU, 1994.
Good, if a bit dated, overview and bibliography of the literature on programming language semantics. 
Complementary Textbooks
[Fra] 
Introduction to proofs in mathematics,
by James Franklin and Albert Oaoud.
PrenticeHall, 1988.
(On reserve in the Math Library) An introductory text on how to develop and write mathematical proofs. 
[Gor] 
The denotational description of programming languages : an introduction,
by Michael Gordon.
SpringerVerlag, 1979.
Informal introduction to the main concepts of denotational semantics. 
[Gun] 
Semantics of programming languages : structures and techniques
by Carl Gunter.
MIT Press, 1992.
(On reserve in the Math Library) 
[Hen] 
The semantics of programming languages,
by Matthew Hennessy.
Wiley, 1990.
Operational and denotational semantics. Part of the book is available online in ps format. 
[Mey]  Introduction to the theory of programming languages, by Bertrand Meyer. Prentice Hall, 1990. 
[Nis] 
Introductory Logic & Sets for Computer Scientists
by Nimal Nissanke.
AddisonWesley, 1999.
(On reserve in the Math Library) 
[Slo] 
Formal syntax and semantics of programming languages:
a laboratory based approach,
by Kenneth Slonneger and Bayy Kurtz.
AddisonWesley Pub. Co., 1995.
Operational, denotational, axiomatic and algebraic approaches. 
[Ten] 
Semantics of programming languages,
by R. D. Tennent.
Prentice Hall, 1991.
Operational, denotational and axiomatic approaches. 
Miscellaneous

A useful list of proof techniques, By Berwin Turlach et al.

The Evolution of a Programmer, by anonymous.

On the ambiguity of natural language, by anonymous.

What The Professor Really Means, by J. Timothy Petersik.
Last Updated: Nov 2, 2006