Static program analysis is the art of reasoning about the behavior of computer programs without actually running them. This is useful not only in optimizing compilers for producing efficient code but also for automatic error detection and other tools that can help programmers.
This lecture will present essential principles and algorithms for static program analysis, based on material from [ Ссылка ]. We take a constraint-based approach where suitable constraint systems conceptually divide analysis into a front-end that generates constraints from program code and a back-end that solves the constraints to produce the analysis results. If time permits, the lecture will be accompanied by theoretical exercises and by practical exercises based on a Scala implementation of the algorithms.
Lecture material: [ Ссылка ]
Part of PLISS 2019: [ Ссылка ]
Ещё видео!