This course presents an introduction to programming language semantics, as
well as to concepts, constructs, and paradigms in
programming languages. We will cover theoretical aspects of programming
languages and the fundamental language paradigms and constructs that build on
this theory. Topics include:
- operational and denotational semantics
- Hoare logic and axiomatic semantics
- imperative and functional program models
- type systems
- program analysis
- parameter passing, scope
- exceptions and continuations
- objects and modules
- concurrent programming
- logic programming
-
MWF 11:15am - 12:05 am, Thurston Hall 203
- Radu: Monday 4-5pm
- Siggi: Tuesday 2-3pm
- CS312 or permission of the instructor require
- In-class midterm: March 12, 11:15am
- Final exam: May 10, 7pm, Upson 207 (exam
rooms)
- Grading: Midterm 20%, Final 30%, Homeworks 45%, Participation 5%
- Homeworks: 7 assignments. Some will contain a programming component. Written assignments will be submitted in class; programs will be
electronically submitted using CMS.
There is no required textbook for this class. The following are optional
texts:
- "Concepts in Programming Languages", by John Mitchell, Cambridge
University Press, 2002. [online access]
- "Programming Language Pragmatics", Second Edition, by Michael
Scott, Morgan-Kaufmann Publishers, 2006.
- "The Formal Semantics of Programming Languages", by Glynn Winskel,
MIT Press 1993.
- "Practical
Foundations for Programming Languages", lecture notes by
Robert Harper
at CMU