תוכן הקורס ומטרתו
This course teaches techniques for statically approximating the dynamic behaviors of programs (that is, without running them). These techniques are used for a variety of purposes such as compiler optimizations, bug finding (or rather proving the absence of bugs), program understanding, refactoring, etc. The mathematical foundation of the learned techniques will be the theory of abstract interpretation .
הסילבוס המפורט מפורסם לתלמידי הקורס בלבד
The course will combine both theory and practice of programming analysis, including theoretical assignments and programming assignments.
By the end of the course, you will gain skills for developing static analyses for challenging problems, be able to explain the theory behind those analyses, and be able to implement them for real code.