Harvard SEAS Logo

CS 252r: Advanced Topics in Programming Languages

  Course description
  Useful texts
  Reading papers
  Research projects

CS 252r: Advanced Topics in Programming Languages

Prof. Stephen Chong
Spring 2011

Tuesdays and Thursdays, 1:00pm-2:30pm.
Location: Maxwell Dworkin 319.

Office hours: MD 145, by appointment, or whenever the door is open.

Course description

This course focuses on program analysis, and will survey program analysis concepts, techniques, scalable implementations, and applications. Topics covered are subject to change, but are likely to intersect with the following.

  • Dataflow analysis
  • Abstract interpretation
  • Symbolic execution
  • Pointer, alias, and shape analysis
  • Control-flow analysis
  • Interprocedural analysis
  • Model checking
  • Dynamic analysis
  • Efficient data structures and program representations for analysis

The course will be a combination of lectures and paper discussion. For those taking the course for credit, evaluation will be based on class participation, and a final project. Auditors are welcome.

The course is intended for graduate students at all levels as well as advanced undergraduates. It is expected that students have taken a course in the foundations of programming languages, such as CS 152.

Useful texts

The following texts may be useful as reference or to give additional information on some of the topics covered in class. (Additional texts may be added as the class progresses.)

  • Principles of Program Analysis, by Nielson, Nielson, and Hankin. Springer 2005. (Referred to below as NNH.)
  • Advanced Compiler Design and Implementation, by Muchnick. Morgan Kaufmann 1997. (Referred to below as Muchnick.)


Note 1: Schedule is subject to change. Readings marked "reqd." are required; other readings are optional, and duplicate and/or extend the material discussed in class.

Note 2: Some brief notes on how to read a research paper are available here.

Date Lec. Topic Readings Slides
Tu 25-Jan 1 Intro
Data flow analysis
  • NNH Chapter 2.1–2.4.
  • Muchnick Chapter 8.
Th 27-Jan 2 Data flow analysis .pdf
Tu 1-Feb 3 Paper discussion
Th 3-Feb 4 Static Single Assignment (SSA) form .pdf
Tu 8-Feb 5 Interprocedural analysis .pdf
Th 10-Feb No class
Tu 15-Feb 6 Pointer analysis .pdf
Th 17-Feb 7 Paper discussion
Tu 22-Feb 8 Paper discussion
Th 24-Feb 9 Shape analysis .pdf
Tu 1-Mar 10 Control-flow analysis .pdf
Th 3-Mar 11 Abstract interpretation .pdf
(contains link to the NNH Chap. 4 slides)
Tu 8-Mar 12 Project proposal due
Abstract interpretation
Th 10-Mar No class

Spring Recess
Tu 22-Mar 13 Symbolic execution .pdf
Th 24-Mar 14 Paper discussion .pdf
Tu 29-Mar 15 Paper discussion
Th 31-Mar 16 Model checking
Tu 5-Apr 17 Paper discussion
Th 7-Apr 18 Dynamic information
Tu 12-Apr 19 Analysis of low-level code Presenter: Gregory
Th 14-Apr 20 Analysis of dynamic languages
Tu 19-Apr 21 Experimental methodology
Th 21-Apr No class
Tu 26-Apr 22 Project presentations
We 27-Apr Final project due