ECS 240 Lectures Lecture Schedule (tentative and incrementally updated)

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

01/12/17
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

01/17/17
PDF
Operational Semantics (II)
(required) Winskel Ch 3

01/19/17
PDF
Lambda Calculus and Functional Programming (I)
(required) Pierce: Foundational Calculi for Programming Languages (pp 1-10)

01/24/17
same
Lambda Calculus and Functional Programming (II)
(required) none

01/26/17
PDF
Dataflow Analysis (I)
(required) Kildall: A Unified Approach to Global Program Optimization (POPL'73)

01/31/17
same
Dataflow Analysis (II)
(required) none

02/02/17
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)

02/07/17
same
Abstract Interpretation (II)
(optional) Link to PolySpace

02/09/17
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

02/14/17
same
Axiomatic Semantics (II)
(required) Winskel Ch 7
(required) Dijkstra: Guarded Commands
(optional) Flanagan et al.: Extended Static Checking for Java
(optional) Leino ESC/Java Talk
(optional) Link to ESC/Java2

02/16/17

Program Synthesis
(required) none

02/21/17
PDF
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)

02/23/17

Two Videos
(required) Bret Victor: Inventing on Principle
(required) Rob Pike: Go at Google

02/28/17
PDF
Type Systems (I)
(required) Cardelli: Type Systems

03/02/17
same
Type Systems (II)
(recommended) Wright, Felleisen: A Syntatic Approach to Type Soundness

03/07/17
same
Type Systems (III)
(required)

03/09/17
PDF
Modern Topics: TBA
(required)

03/14/17
PDF
Modern Topics: TBA
(required)

03/16/17
PDF
Modern Topics: TBA
(required)