Program Analysis

Gears used to illustrate an efficient system.

The operation of gears illustrates how efficient systems work. This course will examine a variety of tools and program analysis techniques used to address software engineering tasks. (Image courtesy of stock.xchng)


MIT Course Number


As Taught In

Fall 2005



Cite This Course

Course Description

Course Features

Course Description

6.883 is a graduate seminar that investigates a variety of program analysis techniques that address software engineering tasks. Static analysis topics include abstract interpretation (dataflow), type systems, model checking, decision procedures (SAT, BDDs), theorem-proving. Dynamic analysis topics include testing, fault isolation (debugging), model inference, and visualization. While the course focuses on the design and implementation of programming tools, the material will be useful to anyone who wishes to improve his or her programming or understand the state of the art. Students are expected to read classic and current technical papers, actively participate in class discussion, perform small exercises that provide experience with a variety of tools, and complete a team research project.

Related Content

Michael Ernst. 6.883 Program Analysis. Fall 2005. Massachusetts Institute of Technology: MIT OpenCourseWare, License: Creative Commons BY-NC-SA.

For more information about using these materials and the Creative Commons license, see our Terms of Use.