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
-
Understand fundamental aspects of static analysis (conditions to make it work)
-
Obtain hands-on experience with a popular framework for building analysis tool (SOOT)
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