CS 615 - Lectures

Lectures

The class meets Tuesday and Thursdays from 5:00pm to 6:15pm in OLS 005.

Date # Topic (and notes, when available) Homework Reading For The Next Class
Thu Aug 24 1 Welcome To Wonderland 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)
Tue Aug 29 2 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)
Thu Aug 31 3 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)
Tue Sep 05 4 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)
Thu Sep 07 5 Whirlwind Denotational Semantics HW 2 Due On Friday
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 12 6 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 14 7 Axiomatic Semantics 2:
With A Vengeance

 
Bonus Lecture #1 (6:15pm)
HW 3 Due
HW 4 Out
Winskel Chapters 7.4-7.6: Completeness of the Hoare Rules
Dijkstra's Guarded Commands, Nondeterminancy and Formal Derivation of Programs
Tue Sep 19 8 Verification Conditions Cousot and Cousot's Abstract Interpretation
Abramski's An introduction to abstract interpretation
Thu Sep 21 9 Abstract Interpretation HW 4 Due
HW 5 Out
Thompson's Reflections on Trusting Trust
Wikipedia's Abstract Interpretation (optional)
Tue Sep 26 10 Abstract Interpretation 2:
The Wrath of Cousot
Project Proposal Due Benjamin Pierce's Foundational Calculi for Programming Languages (pages 1-10)
Thu Sep 28 11 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 03 12 Lambda Two: Electric Boogaloo Luca Cardelli's Type Systems
Thu Oct 05 13 Simply-Typed Lambda Calculus Andrew Wright and Matthias Felleisen's A syntactic approach to type soundness
Tue Oct 10 14 Monomorphic Type Systems John Goodenough's Exception Handling: Issues and a Proposed Notation (optional, 1975, this is the canonical paper on exception handling)
Thu Oct 12 15 Exceptions, Continuations & Recursive Types
Tue Oct 17 16 Subtyping
HW 5 Due Anonymous Class Survey
Thu Oct 19 No Lecture - UVa Football Game
Tue Oct 24
Double Lecture
17 - 18 5:00 - 6:15: Second-Order Types
6:30 - 7:45: Dependant Types and Data Abstraction
Project Status Update Due Nelson and Oppen's Fast Decision Procedures Based On Congruence Closure
Thu Oct 26 No Lecture - OOPSLA/GPCE
Tue Oct 31 19 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 02 20 Communication and Concurrency 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
Tue Nov 07 21 Model Checking
SLAM Introduction
Henzinger et al.'s Lazy Abstraction (optional)
Henzinger et al.'s Thread-modular Abstraction Refinement (optional)
Thu Nov 09 22 Program Verification Using Counterexample-guided Abstraction Refinement 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 14 23 Type Systems For Resource Management
Thu Nov 16 24 Region-Based Memory Management
Tue Nov 21 No Lecture - Thanksgiving Recess Austen's Pride and Prejudice (optional)
Barzun's From Dawn To Decadence (optional)
Thu Nov 23 No Lecture - Thanksgiving Recess Diamond's Guns, Germs, and Steel (optional)
Goldman's The Princess Bride (optional)
Tue Nov 28 25 Cooperative Bug Isolation
 
Bonus Lecture #2 (6:15pm)
Projects Due Speech Evaluation Form
Object-Oriented Programming Slides (optional)
 
Course Material Summary
 
Thu Nov 30
5:00pm - 7:00pm: Student Presentations
Presentation Signup Reminder & Hints
  1. Kinga Dobolyi
  2. Pieter Hooimeijer
  3. Paul Turner
  4. Jing Yang
  5. Hong Pham
Tue Dec 05
5:00pm - 7:30pm: Student Presentations
  1. Ray Buse
  2. Joy Kamunyori
  3. Jim Apple
  4. Aprotim Sanyal
  5. Clint Smullen
  6. Karolina Sarnowska

Generic Fall 2006 Calendar

         Jul                    Aug                    Sep
 S  M Tu  W Th  F  S    S  M Tu  W Th  F  S    S  M Tu  W Th  F  S
                   1          1  2  3  4  5                   1  2
 2  3  4  5  6  7  8    6  7  8  9 10 11 12    3  4  5  6  7  8  9
 9 10 11 12 13 14 15   13 14 15 16 17 18 19   10 11 12 13 14 15 16
16 17 18 19 20 21 22   20 21 22 23 24 25 26   17 18 19 20 21 22 23
23 24 25 26 27 28 29   27 28 29 30 31         24 25 26 27 28 29 30
30 31
         Oct                    Nov                    Dec
 S  M Tu  W Th  F  S    S  M Tu  W Th  F  S    S  M Tu  W Th  F  S
 1  2  3  4  5  6  7             1  2  3  4                   1  2
 8  9 10 11 12 13 14    5  6  7  8  9 10 11    3  4  5  6  7  8  9
15 16 17 18 19 20 21   12 13 14 15 16 17 18   10 11 12 13 14 15 16
22 23 24 25 26 27 28   19 20 21 22 23 24 25   17 18 19 20 21 22 23
29 30 31               26 27 28 29 30         24 25 26 27 28 29 30
                                              31