Date

#

Topic (and notes, when available)

Homework

Reading For The Next Class

Thu Jan 19  1

Welcome To Wonderland (1.2 MB PDF slides)

anonymous survey results

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 Jan 24  2

A Simple Imperative Language Operational Semantics
(Joseph Carnahan)
(256k PDF slides)
 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
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 objectoriented
languages
(optional, recent paper  POPL 2005, uses operational semantics on page 9,
figure 14, just skim to that and note the nonstandard 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 Jan 26  3

Contextual Operational Semantics
(Duane Merrill)
(250k PDF slides)
 HW 2 Out
 Chaptire Trois De Winskel: Some principles of induction
Wikipedia's
Natural deduction (optional, sections 13 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)

Tue Jan 31  4
 Proof Techniques For Operational Semantics Structural Induction
(Jinlin Yang)
(500k PDF slides)
 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 Feb 02  5

Whirlwind Denotational Semantics
(Wei Hu)
(334k PDF slides)
 HW 2 Due HW 3 Out
 Winskel Kapitel SechsEins Bis SechsVier: 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 Feb 07  6
 Intro To Axiomatic Semantics
(Daniel Dunbar)
(200k PDF slides)

 Winskel Capitolele sasecinci pana la sasesapte (6.56.7) si
sapteunu pana la saptetrei (7.17.3):
Completeness of the Hoare rules
Hoare's Proof of a program FIND
Necula's Completeness of
Axiomatic Semantics (using operational semantics)

Thu Feb 09  7
 Axiomatic Semantics 2: With A Vengeance
(Daniel Dunbar)
(180k PDF slides)
 HW 3 Due HW 4 Out
 Winskel Chapters 7.47.6: Completeness of the Hoare Rules
Dijkstra's Guarded Commands, Nondeterminancy and Formal Derivation of Programs

Tue Feb 14  8
 Verification Conditions (370k
PDF slides)


Cousot and Cousot's Abstract
Interpretation
Abramski's An introduction to abstract
interpretation

Thu Feb 16  9
 Abstract Interpretation (400k PDF
slides)
 HW 4 Due HW 5 Out
 Thompson's
Reflections on Trusting Trust
Wikipedia's
Abstract Interpretation (optional)

Tue Feb 21  10
 Abstract Interpretation 2:
The Wrath of Cousot (470k PDF slides)
 Project Proposal Due

Benjamin Pierce's Foundational Calculi for Programming Languages (pages 110)

Thu Feb 23  11
 Lambda Calculus And Functional Programming (630k PDF slides)


Xavier Leroy's Formal Certification
of a Compiler Backend or: Programming a Compiler with a Proof Assistant
Li & Zdancewic's Downgrading Policies
and Relaxed Noninterference (optional, describes secure information
flow and noninterference using the lambda calculus, check out section 4)

Tue Feb 28 
 No Lecture (Weimer @ CRA Workshop)



Thu Mar 02  12

Lambda Two: Electric Boogaloo
(Joseph Carnahan)
(580k PDF slides)
 HW 5 Due
 Luca Cardelli's Type
Systems

Sat Mar 04 
 Spring Recess Begins


Austen's
Pride and Prejudice (optional)

Tue Mar 07 
 No Lecture


Barzun's
From Dawn To Decadence (optional)

Thu Mar 09 
 No Lecture


Diamond's
Guns, Germs, and Steel (optional)

Sun Mar 12 
 Spring Recess Ends

 Goldman's
The Princess Bride (optional)

Tue Mar 14  13
 SimplyTyped Lambda Calculus
(400k PDF slides)
(Matt Spear)

 Andrew Wright and Matthias
Felleisen's A syntactic approach to type soundness

Thu Mar 16  14
 Monomorphic Type Systems
(400k PDF slides)



Tue Mar 21  15
 Exceptions, Contiuations &
Recursive Types (200k PDF slides)


John Goodenough's Exception
Handling: Issues and a Proposed Notation (optional, 1975, this is
the canonical paper on exception handling)

Thu Mar 23  16
 Subtyping
(530k PDF slides)
 Project Status Update Due
Class Survey #2 (Due Tue)


Tue Mar 28  17

SecondOrder Types
(Nora Sovarel)
(130k PDF slides)
(Bonus Lecture #2 @ 6:15, bring cash for pizza)

Class Survey #2 Due


Thu Mar 30  18

Dependant Types and
Data Abstraction
(236k PDF slides)


Nelson and Oppen's Fast
Decision Procedures Based On Congruence Closure

Tue Apr 04  19

Automated Theorem Proving and Proof Checking
(Nora Sovarel)
(276k PDF slides)

 Benjamin Pierce's Foundational Calculi for Programming Languages (pages 10end)
Dawson Engler et al.'s Automatically
Generating Malicious Disks Using Symbolic Execution (optional, uses
symex and theorem proving)

Thu Apr 06  20

Communication and Concurrency (600k PDF slides)


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 Apr 11  21

Model Checking
SLAM Introduction
(300 KB PDF slides)


Henzinger et al.'s Lazy Abstraction (optional)
Henzinger
et al.'s Threadmodular Abstraction Refinement (optional)

Thu Apr 13  22

Program Verification Using
Counterexampleguided
Abstraction Refinement
(1.2 MB PDF slides)


Robert DeLine and Manuel Fahndrich's Enforcing highlevel protocols in lowlevel software
Weimer and Necula's Finding And Preventing RunTime Error Handling
Mistakes

Tue Apr 18  23

Type Systems For Resource Management
(340k PDF slides)



Thu Apr 20  24

RegionBased Memory Management
(220k PDF slides)



Tue Apr 25 

ObjectOriented Programming
(360k PDF slides)
 Projects Due

Speech Evaluation Form

Thu Apr 27 

Wei Hu
Nora Sovarel
Joe Carnahan



Tue May 02 

Duane Merrill
Tao Hong
Daniel Dunbar


