Lecture Schedule

Date
Slides
Topic Readings
Due
04/01/08
PDF
Overview
(required) none
(optional) Winskel Ch 1

04/03/08
PDF
Operational Semantics (I)
(required) Winskel Ch 2
(recommended) Hoare: Hints for Programming Language Design
(optional) Wegner: Programming Languages - The First 25 Years
(optional) Wirth: On the Design of Programming Languages
(optional) Naur: Report on the Algorithmic Language ALGOL 60

04/08/08
PDF
Operational Semantics (II)
(required) Winskel Ch 3

04/10/08
PDF
Denotational Semantics (I)
(required) Winskel Ch 5, Ch 8

04/15/08
PDF
Denotational Semantics (II)
(required) Winskel Ch 5, Ch 8

04/17/08

Guest speakers:
Earl Barr
Mark Gabel
Gary Wassermann
(required) none

04/22/08
same
Denotational Semantics (III)
(required) Winskel Ch 5, Ch 8

04/24/08
same
Denotational Semantics (IV)
(required) Winskel Ch 5, Ch 8

04/29/08
PDF
Axiomatic Semantics (I)
(required) Winskel Ch 6
(required) Hoare: An Axiomatic Basis for Computer Programming
(optional) Floyd: Assigning Meaning to Programs
(optional) Hoare: Proof of a program FIND

05/01/08
same
Axiomatic Semantics (II)
(required) Winskel Ch 7
(required) Dijkstra: Guarded Commands

05/06/08
PPT
Axiomatic Semantics (III), ESC/Java
(required) Flanagan et al.: Extended Static Checking for Java
(optional) Link to ESC/Java2

05/08/08
PDF
Abstract Interpretation (I)
(required) Abramsky, Hankin: An Introduction to Abstract Interpretation
(recommended) Cousot, Cousot: Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints (the original paper on abstract interpretation)
(optional) Jones, Nielson: Abstract Interpretation: a Semantics-Based Tool for Program Analysis (pp1-30)

05/13/08
N/A
no lecture, work on project/homework


05/15/08
N/A
no lecture, work on project/homework


05/20/08
same
Abstract Interpretation (II)
(optional) Link to PolySpace

05/22/08
PDF
Dataflow Analysis
(required) Kildall: A Unified Approach to Global Program Optimization (POPL'73)

05/27/08
PDF
Introduction to Model Checking
(optional) Clarke, Grumberg, Peled: Model Checking, MIT Press, 2001
(optional) Clarke, Emerson, Sistla: Automatic verification of finite-state concurrent systems using temporal logic specifications (TOPLAS 1986;8(2):244--263)
(optional) McMillan: Symbolic Model Checking, Kluwer Academic Publishers, 1993
(optional) Bryant: Graph-Based Algorithms for Boolean Function Manipulation (IEEE Transactions on Computers, Vol. C - 35, No. 8, August, 1986, pp. 677 - 691)

05/29/08
PDF
Lambda Calculus and Functional Programming
(required) Pierce: Foundational Calculi for Programming Languages (pp 1-10)

06/03/08
PDF
Simply Typed Lambda Calculus (I)
(required) Cardelli: Type Systems

06/05/08
same
Simply Typed Lambda Calculus (II)
(recommended) Wright, Felleisen: A Syntatic Approach to Type Soundness