/B629-denotational

Topics in Programming Languages: Denotational Semantics, Spring 2018 Course at Indiana University

Primary LanguageTeX

B629 Topics in PL: Denotational Semantics

Indiana University, Spring 2018

In this course we shall study the denotational semantics of programming languages, including the classic domain-theoretic models as well as elementary models based on functions-as-graphs and intersection types. The course assignments will include readings from selected chapters and papers, written homework, presentations, and some programming.

Instructor

Jeremy Siek Luddy 3016 jsiek@indiana.edu

Lectures

9:30-10:45am MW in Luddy Hall Room 3069 (not BH 305!), backup location Luddy Hall Room 4069.

The lecture notes are in progress at:

https://github.com/jsiek/B629-denotational/notes.pdf.

Office Hours

  • 11:00am-12 Thursdays in my office Luddy 3016,

  • or by appointment

Assignments

There will be a homework (reading and some exercises) each week and a written report and presentations at the end of the semester. Also, roughly each week, one student will give a 30 minute presentation of a paper that the class has read.

Week-by-week Schedule

  1. Basics of denotational semantics
  2. Fixed point semantics
  3. Semantics of the simply-typed lambda calculus
  4. Semantics of the untyped lambda calculus
  5. Scott and Engeler's graph models
  6. Plotkin's graph model
  7. Filter models of the untyped lambda calculus
  8. More on filter models
  9. D-infinity model of the untyped lambda calculus
  10. Category-theoretic solutions to domain equations
  11. More on category-theoretic solutions to domain equations
  12. Semantics of PCF
  13. Full abstraction
  14. Semantics for imperative languages
  15. Monads and effect-handlers
  16. Student Presentations

Representative Readings