Date | Topic (and notes, when available) | Homework | Reading For The Next Class |
Tue Aug 28 | Welcome To Wonderland |
Thomas Ball and Sriram Rajamani's The SLAM Project: Debugging System Software via Static Analysis
Thomas Ball and Sriram Rajamani's Automatically Validating Temporal Safety Properties of Interfaces | |
Thu Aug 30 |
Model Checking
SLAM Introduction |
Henzinger et al.'s Lazy Abstraction
Henzinger et al.'s Thread-modular Abstraction Refinement (optional) | |
Tue Sep 04 | Program Verification Using Counterexample-guided Abstraction Refinement |
Winskel Chapter Two: Introduction to operational semantics
Hoare's Hints On Programming Language Design (shorter than it looks) Weimer's Midterm Pi (optional, but if you replace "Cool" with "Your Favorite Language" you should be able to answer most of the questions in it) Spolsky's The Perils of JavaSchools (optional, short, controversial, relevant) | |
Thu Sep 06 |
A Simple Imperative Language Operational Semantics | HW 1 Out |
Choose at least one of these three:
1. Wegner's Programming Languages - The First 25 years 2. Wirth's On the Design of Programming Languages (bonus points if you mistakenly choose this one just because it has the lowest page count) 3. Nauer's Report on the algorithmic language ALGOL 60 (the language that Hoare said was an improvement not only on its predecessors but also on nearly all of its successors) Cobbe and Felleisen's Environmental acquisition revisited (optional, recent paper -- POPL 2005, uses operational semantics on page 7, figure 11, just skim to that figure and see if you recognize it) Chen and Tarditi's A simple typed intermediate language for object-oriented languages (optional, recent paper -- POPL 2005, uses operational semantics on page 9, figure 14, just skim to that and note the non-standard syntax -- but you should be able to interpret the (H; V ; x : t = v in e) rule, for example) Plotkin's A Structural Approach To Operational Semantics (optional, basically a textbook, see chapter 2 for another take on what we're covering in class) |
Tue Sep 11 | Contextual Operational Semantics | HW 2 Out | Chaptire Trois De Winskel: Some principles of induction
Wikipedia's Natural deduction (optional, sections 1-3 show judgments and rules of inference for a simpler system -- propositional logic, read this if you want another take on derivations) Phillip's Degrees of Interpretation (optional, Philosophy of Science; if you like math or theory this is worth it) |
Thu Sep 13 |
Proof Techniques For Operational Semantics Structural Induction | HW 1 Due |
Capítulo Cinco De Winskel: The denotational semantics of IMP
Capítulo Ocho De Winskel: Introduction to domain theory (read for general concepts, not details) |
Tue Sep 18 | Whirlwind Denotation Semantics (1/2) |
Capítulo Cinco De Winskel: The denotational semantics of IMP
(really this time!)
Capítulo Ocho De Winskel: Introduction to domain theory (read for general concepts, not details) | |
Thu Sep 20 | Whirlwind Denotational Semantics (2/2) | HW 2 Due HW 3 Out | Winskel Kapitel Sechs-Eins Bis Sechs-Vier: The axiomatic semantics
of IMP
Hoare's An Axiomatic Basis for Computer Programming Floyd's Assigning Meaning to Programs Lee's A Denotational Semantics for Dataflow with Firing (skim up to and including section 2.4 for an alternative presentation of partial orders, least upper bounds, monotonic and continuous functions, and least fixed points) |
Tue Sep 25 | Intro To Axiomatic Semantics | Winskel Capitolele sase-cinci pana la sase-sapte (6.5-6.7) si
sapte-unu pana la sapte-trei (7.1-7.3):
Completeness of the Hoare rules
Hoare's Proof of a program: FIND Necula's Completeness of Axiomatic Semantics (using operational semantics) | |
Thu Sep 27 |
Axiomatic Semantics 2: With A Vengeance | HW 3 Due HW 4 Out Project Proposal Due | Winskel Chapters 7.4-7.6: Completeness of the Hoare Rules
Dijkstra's Guarded Commands, Nondeterminancy and Formal Derivation of Programs |
Tue Oct 02 | Verification Conditions |
Cousot and Cousot's Abstract
Interpretation
Abramski's An introduction to abstract interpretation | |
Thu Oct 04 | Abstract Interpretation | HW 4 Due HW 5 Out | Thompson's
Reflections on Trusting Trust
Wikipedia's Abstract Interpretation (optional) |
Tue Oct 09 | No Lecture - Reading Day | ||
Thu Oct 11 |
Abstract Interpretation 2: The Wrath of Cousot | Benjamin Pierce's Foundational Calculi for Programming Languages (pages 1-10) | |
Thu Oct 16 | Lambda Calculus And Functional Programming |
Xavier Leroy's Formal Certification
of a Compiler Back-end or: Programming a Compiler with a Proof Assistant
Li & Zdancewic's Downgrading Policies and Relaxed Noninterference (optional, describes secure information flow and non-interference using the lambda calculus, check out section 4) | |
Tue Oct 18 | Lambda Two: Electric Boogaloo | HW 5 Due | Luca Cardelli's Type Systems |
Tue Oct 23 | Simply-Typed Lambda Calculus | Project Status Update Due | Andrew Wright and Matthias Felleisen's A syntactic approach to type soundness |
Thu Oct 25 | Monomorphic Type Systems | John Goodenough's Exception Handling: Issues and a Proposed Notation (optional, 1975, this is the canonical paper on exception handling) | |
Tue Oct 30 | Exceptions and Continuations | ||
Thu Nov 01 |
Recursive Types and Subtyping
| ||
Tue Nov 06 | Second-Order Types (Polymorphism) | ||
Thu Nov 08 | Dependant Types and Data Abstraction | Nelson and Oppen's Fast Decision Procedures Based On Congruence Closure | |
Tue Nov 13 | Automated Theorem Proving and Proof Checking | Benjamin Pierce's Foundational Calculi for Programming Languages (pages 10-end)
Dawson Engler et al.'s Automatically Generating Malicious Disks Using Symbolic Execution (optional, uses symex and theorem proving) | |
Thu Nov 15 | Communication and Concurrency |
Robert DeLine and Manuel Fahndrich's Enforcing high-level protocols in low-level software
Weimer and Necula's Finding And Preventing Run-Time Error Handling Mistakes | |
Tue Nov 20 | No Lecture - Thanksgiving Recess |
Austen's
Pride and Prejudice (optional)
Barzun's From Dawn To Decadence (optional) | |
Thu Nov 22 | No Lecture - Thanksgiving Recess |
Diamond's
Guns, Germs, and Steel (optional)
Goldman's The Princess Bride (optional) | |
Tue Nov 27 | Cooperative Bug Isolation | Projects Due |
Speech Evaluation Form
Object-Oriented Programming Slides (optional) |
Thu Nov 29 |
| Presentation Signup Reminder & Hints |
|
Tue Dec 04 |
(show up on time) (class goes until 3:25) |
| |
Thu Dec 06 |
|
|
July August September Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 1 8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8 15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15 22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22 29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29 30 October November December Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 1 2 3 1 7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29 30 31