|
||||||
Instructor: Manuvir Das |
||||||
Introduction |
|
|||||
| The first nine weeks of class shall cover various aspects of
program analysis. The emphasis shall be on the analysis landscape formed
by the cost/precision tradeoff, and various techniques for implementing
analyses from interesting points in the landscape. We'll cover a range of
analyses from flow-insensitive (type inference), to flow-sensitive
(dataflow), to path-sensitive (simulation & model checking). We'll
also study dynamic analysis as a complement to static analysis. Classes
will include instruction as well as discussion of relevant research
papers. There will be six guest lectures by experts in particular aspects
of analysis.
The class will be offered in two flavours: For 2 credits, students must read papers every week, and submit written one paragraph answers to one question on each assigned paper. For 3 credits, students must also complete a class project related to static program analysis. We'll provide infrastructure in the form of the AST Toolkit, which provides ASTs and CFGs, a pointer-analysis infrastructure, a path simulator based on the toolkit, and parts of the SLAM toolkit. Students can also use any other infrastructure of their own choice. The goal of the projects is to give students practical experience with analysis and to facilitate experiments that answer interesting open questions in program analysis. The projects will be relatively small (less than two weeks of effort), and may mix theory and practice. Although I have a list of suggested projects, students are encouraged to propose their own projects. In the last week of class, we'll hear about several current projects that are pushing the envelope of static analysis methods from the project designers themselves. Students who've done class projects will have a chance to present their results. This class is intended for practitioners of program analysis as well as people who may be able to use program analysis to solve problems in their particular domains. |
|
|||||
| CSE 590MD © 2001, Department of Computer Science and Engineering, University of Washington. | ||||||