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) |