Lecture, four hours; outside study, eight hours. Requisite: course 132. Introduction to static analysis of object-oriented programs and its usage for optimization and bug finding. Class hierarchy analysis, rapid type analysis, equality-based analysis, subset-based analysis, flow-insensitive and flow-sensitive analysis, context-insensitive and context-sensitive analysis. Soundness proofs for static analyses. Efficient data structures for static analysis information such as directed graphs and binary decision diagrams. Flow-directed method inlining, type-safe method inlining, synchronization optimization, deadlock detection, security vulnerability detection. Formal specification and implementation of variety of static analyses, as well as readings from recent research literature on modern applications of static analysis. Letter grading.

Review Summary

Clarity
10.0 / 10
Organization
10.0 / 10
Time
5-10 hrs/week
Overall
8.3 / 10

Enrollment Progress

Enrollment data not available.

Reviews

    Quarter Taken: Winter 2020 In-Person
    Grade: A

    The class is run pretty similarly to CS 132, but the projects were definitely more difficult. The material was pretty interesting, but much of it is based on research from ~2005-ish, and may need some update.

Course

Instructor
Jens Palsberg
Previously taught
20W 09F 08F 08S 07S 06S

Grading Information

  • No group projects

  • Attendance not required

  • No midterms

  • Finals week final