Static Analysis of Programs

Lecturer: Marcelo d'Amorim

Want to find out how a compiler detects uninitialized variables, how tools show dependencies across modules of a system, how to collect data to measure internal quality? If yes, consider taking this class.

Objectives Grading

Mid-term exam (25%), Demo (20%), Seminar (20%), Project (35%).

References

[PPA]: Principles of Program Analysis. F. Nielson, H. R. Nielson and C. Hankin. Springer Verlag 2005.
[SOD]: SOOT documentation, McGill Univ.
[BRG]: Barbara Ryder's group notes
[ASU]: Compilers: Principles, Techniques, and Tools. A. Aho, R. Sethi, and J. D. Ullman. (Capítulo "Code Optimization")

Announcements --

Seminars & Projects Overview

Lectures
  • Introduction: motivation, examples, tools, main limitations
  • Type checking
  • Partial Correctness
  • Symbolic execution
  • Dataflow analysis