| Instructor | Chandra Boyapati | 
| Lectures | T Th 3:00-4:30, 3433 EECS | 
| Credits | 4 | 
| For CSE grads | Counts as a software kernel course and towards software area qualification | 
| For CS-ENGR and CS-LSA undergrads | Counts as an upper-level CS technical elective | 
| Introduction | ||
| L1 | Jan 06 | Course Overview | 
| Optional Reading Hoare: Hints for Programming Language Design Wegner: Programming Languages - The First 25 Years Wirth: On the Design of Programming Languages Nauer: Report on the Algorithmic Language ALGOL 60 | ||
| Programming Languages and Type Systems | ||
| L2 | Jan 11 | Syntax and Semantics | 
| Reading Pierce: Chapter 3 | ||
| L3 | Jan 13 | Syntax and Semantics | 
| Reading Pierce: Chapter 3 | ||
| L4 | Jan 18 | Type Systems | 
| Reading Pierce: Chapter 8 Cardelli: Type Systems | ||
| Handout Assignment 1 | ||
| L5 | Jan 20 | Type System for Java Bytecodes | 
| Reading Stata & Abadi: A Type System for Java Bytecode Subroutines (POPL 1998): Sections 1-4, 8, 9, 10 | ||
| Optional Reading Freund & Mitchell: A Type System for the Java Bytecode Language and Verifier (JAR 2003) | ||
| L6 | Jan 25 | Type System for Java | 
| Reading Liskov & Wing: A Behavioral Notion of Subtyping (TOPLAS 1994) Igarashi et al: FeatherWeight Java (TOPLAS 2001): Sections 1-2 | ||
| L7 | Jan 27 | Type System for Java | 
| Reading Igarashi et al: FeatherWeight Java (TOPLAS 2001): Sections 1-2 | ||
| Handout Assignment 2 | ||
| Homework Due Assignment 1 | ||
| L8 | Feb 01 | Type System for Generic Java | 
| Reading Myers et al: Parameterized Types for Java (POPL 1997) Igarashi et al: FeatherWeight Java (TOPLAS 2001): Sections 3-6 | ||
| Optional Reading Kennedy et al: Design and Implementation of Generics for the .NET Common Language Runtime (PLDI 2001) | ||
| L9 | Feb 03 | Type System for Generic Java | 
| Reading Igarashi et al: FeatherWeight Java (TOPLAS 2001): Sections 3-6 | ||
| Optional Reading Kennedy et al: Design and Implementation of Generics for the .NET Common Language Runtime (PLDI 2001) | ||
| Applications of Type Systems | ||
| L10 | Feb 08 | Types for Information Flow Control | 
| Reading Myers: JFlow: Practical Mostly-Static Information Flow Control (POPL 1999) Presenter: Steve Chapel | ||
| Optional Reading Clarkson et al: Toward a Secure Voting system (Oakland 2008) | ||
| Homework Due Paper Summary (About 120 Words) | ||
| L11 | Feb 10 | Types for Safe Multithreading | 
| Reading Boyapati & Rinard: A Parameterized Type System for Race-Free Java Programs (OOPSLA 2001) | ||
| Optional Reading Grossman: Type-Safe Multithreading in Cyclone (TLDI 2003) | ||
| Homework Due Assignment 2 Paper Summary (About 120 Words) | ||
| Handout Project Suggestions | ||
| L12 | Feb 15 | Types for Safe Explicit Memory Management | 
| Reading Grossman et al: Region-Based Memory Management in Cyclone (PLDI 2002) Presenter: Jordan Marchese | ||
| Optional Reading Boyapati et al: Ownership Types for Safe Region-Based Memory Management in Real-Time Java (PLDI 2003) | ||
| Homework Due Paper Summary (About 120 Words) | ||
| L13 | Feb 17 | Types for Protocol Checking and Type Safety for Legacy Code | 
| Reading DeLine & Fahndrich: Enforcing High Level Protocols in Low-Level Software (PLDI 2001) Presenter: Rahul Jha Necula et al: CCured: Type-Safe Retrofitting of Legacy Code (POPL 2002) Presenter: James Juett | ||
| Optional Reading Fahndrich & Leino: Declaring and Checking Non-Null Types in an Object-Oriented Language (OOPSLA 2003) | ||
| Homework Due Project Proposal (Includes Problem Statement, Research Goals, Schedule) Paper Summaries (About 120 Words Each) | ||
| Program Analysis | ||
| L14 | Feb 22 | Dataflow Analysis | 
| Reading Zee & Rinard: Write Barrier Removal by Static Analysis (OOPSLA 2002) Nielson, Nielson, Hankin: Appendix A, Chapters 1.1-1.3 | ||
| Optional Reading Salcianu: Notes on Abstract Interpretation (MIT 2001) Cousot & Cousot: Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints (POPL 1977) | ||
| L15 | Feb 24 | Dataflow Analysis | 
| Reading Nielson, Nielson, Hankin: Chapters 2.1-2.4 | ||
| Optional Reading Salcianu & Arkoudas: Machine-Checkable Correctness Proofs for Dataflow Analyses (MIT 2004) Lerner et al: Automatically Proving the Correctness of Compiler Optimizations (PLDI 2003) | ||
| Happy Winter Break! | ||
| L16 | Mar 08 | Pointer Analysis | 
| Reading Steensgaard: Pointer Analysis in Almost Linear Time (POPL 1995) Presenter: Mendel Feygelson | ||
| Optional Reading Hind: Pointer Analysis: Haven't We Solved This Problem Yet? (PASTE 2001) | ||
| Homework Due Paper Summary (About 120 Words) | ||
| L17 | Mar 10 | Interprocedural Program Analysis | 
| Reading Reps et al: Precise Interprocedural Dataflow Analysis via Graph Reachability (POPL 1995) Presenter: Chun-Hung Hsiao | ||
| Optional Reading Whaley & Lam: Cloning-Based Context-Sensitive Pointer Alias Analysis Using Binary Decision Diagrams (PLDI 2004) | ||
| Homework Due Project Progress Report I (Includes Literature Survey, Preliminary Work) Paper Summary (About 120 Words) | ||
| L18 | Mar 15 | Applications of Program Analysis | 
| Reading Voung et al: RELAY: Static Race Detection on Millions of Lines of Code (FSE 2007) Presenter: Paul Bloem | ||
| Optional Reading Lev-Ami et al: Putting Static Analysis to Work for Verification: A Case Study (ISSTA 2000) | ||
| Homework Due Paper Summary (About 120 Words) | ||
| Program Verification | ||
| L19 | Mar 17 | Axiomatic Semantics | 
| Reading Winskel: Chapters 2, 6.1-6.4 | ||
| Optional Reading Floyd: Assigning Meaning to Programs (Symposium in Applied Mathematics 1967) Hoare: An Axiomatic Basis for Computer Programming (CACM 1969) | ||
| L20 | Mar 22 | Axiomatic Semantics | 
| Reading Winskel: Chapters 6.5-6.7, 7.1-7.6 | ||
| Optional Reading Hoare: Proof of a Program FIND (CACM 1971) Dijkstra: Guarded Commands, Nondeterminancy and Formal Derivation of Programs (CACM 1975) | ||
| L21 | Mar 24 | Verifying Program Properties With Theorem Provers | 
| Reading Flanagan et al: Extended Static Checking for Java (PLDI 2002) Presenter: Alessandra Mazzia Moore: Proving Theorems about Java-Like Byte Code (LNCS 1997) Presenter: Michael Bennett | ||
| Homework Due Paper Summaries (About 120 Words Each) | ||
| L22 | Mar 29 | Verifying Program Properties of Untrusted Code | 
| Reading Necula & Lee: Safe Kernel Extensions Without Run-Time Checking (OSDI 1996) Presenter: Kellen McClain | ||
| Optional Reading Appel: Foundational Proof-Carrying Code (LICS 2001) | ||
| Homework Due Paper Summary (About 120 Words) | ||
| Software Model Checking | ||
| L23 | Mar 31 | Bounded Exhaustive Testing of Control-Oriented Properties of Programs | 
| Reading Musuvathi et al: CMC: A Pragmatic Approach to Model Checking Real Code (OSDI 2002) Presenter: Sumeet Vaidya Ball et al: Automatic Predicate Abstraction of C programs (PLDI 2001) Presenter: Zhaoguang Wang | ||
| Optional Reading Flanagan & Godefroid: Dynamic Partial-Order Reduction for Model Checking Software (POPL 2005) | ||
| Homework Due Project Progress Report II Paper Summaries (About 120 Words Each) | ||
| -- | Apr 05 | No Class | 
| Work on your projects. | ||
| Optional Reading Check out PLDI 2010, OOPSLA 2010, POPL 2010 | ||
| -- | Apr 07 | No Class | 
| Work on your projects. | ||
| Optional Reading Check out PLDI 2010, OOPSLA 2010, POPL 2010 | ||
| L24 | Apr 12 | Bounded Exhaustive Testing of Data-Oriented Properties of Programs | 
| Reading Roberson et al: Efficient Software Model Checking of Soundness of Type Systems (OOPSLA 2008) | ||
| Optional Reading Daniel Jackson: Alloy: A Lightweight Object Modelling Notation (TOSEM 2002) | ||
| Homework Due Paper Summary (About 120 Words) | ||
| L25 | Apr 14 | Project Presentations (Maximum Fifteen Minutes Per Presentation) | 
| Presenters 1. James Juett and Alessandra Mazzia 2. Sumeet Vaidya 3. Jordan Marchese 4. Kellen McClain 5. Zhaoguang Wang | ||
| Project Presentations | ||
| L26 | Apr 19 | Project Presentations (Maximum Fifteen Minutes Per Presentation) | 
| Presenters 1. Chun-Hung Hsiao 2. Michael Bennet 3. Steve Chapel and Rahul Jha 4. Paul Bloem 5. Mendel Feygelson | ||
| -- | Apr 22 | Project Paper | 
| Homework Due Project Paper (Maximum Eight Pages, Including Figures, References, and Appendices) (ACM Format) | ||
![[Mail]](../../images/mailbox.gif) 
![[boyapati dot chandrasekhar at gmail dot com]](../../images/email.png)