IndexAnnouncements
Instructor Contact Info
Course Description
Course Textbooks
Course Policies
Handouts
Additional Useful Links
Announcements/Updates
The first class will be on Monday, March. 31, 2008 at 4:30pm in Ry 277. We may be able to negotiate an alternate meeting time.Instructor Contact Info
Name Role Office Office hours Phone David MacQueen Professor Hinds B-045 By appointment 2-4980 dbm@cs.uchicago.edu Course Description
Denotational semantics is a technique for formally defining the semantics of programming languages. It combines a descriptive notation (originally due to Strachey) based on typed lambda-calculus and an elegant and rigorous theory for assigning mathematical meaning to this notation, namely the theory of domains (due to Scott). Although operational techniques are currently more popular for formalizing programming concepts and constructs, denotational techniques and their related theory still play an important role in programming language research. For instance, important concepts like continuations and monads were first studied in denotational semantics. In developing the underlying mathematical theory of domains, we will introduce and employ basic concepts from category theory.The Programming Language course (CMSC 22100/32100) or equivalent would provide a good background. Also, familiarity with the basic theory of partially ordered sets is expected.
Course Textbook
The main textbook for the course is Semantics of Programming Languages by Carl Gunter. We will also be using Gordon Plotkin's Pisa notes on Domains as a secondary text on Domain Theory.Other textbooks that are useful for background material or further study include:
- Semantics with Applications, An Appetizer, by Hanne Riis Nielson and Flemming Nielson.
- The Formal Semantics of Programming Languages, by Glynn Winskel.
- The Denotational Description of Programming Languages, An Introduction, by Michael Gordon.
- Denotational Semantics, A Methodology for Language Development
- Denotational Semantics: The Scott-Strachey Approach to Programming Language Semantics, by Joseph E. Stoy.
Course Policies
- Grading will be based on a tutorial paper and lectures on a specialized topic in denotational semantics and domain theory. There will be no homework exercises or examinations.
Her is a list of potential topics for the tutorial papers and talks.
Handouts
Here are links to PDF files of class handouts. (none so far)
Papers and Presentations
Additional Useful Links
- Domain Theory, a corrected and expanded version of the chapter on Domain Theory from Volume 3 of the Handbook for Logic in Computer Science.