3838 Static Program Analysis

Winter Term / WT

6 ECTS; Lecture + Exercises + Lab (Vorlesung/Übung/Praktikum)

The course introduces concepts from static analysis that can be used for the automated analysis of software, e.g., for finding bugs and vulnerabilities during software development or in third-party code. We cover topics from data flow analysis over pointer analysis to reconstructing control flow in binaries. Most of the course defines the analyses for a simple imperative language to avoid the complexity of fully-fledged programming languages, but the concepts are identical and have found applications in widely-used bug finding systems and integrated development environments (IDEs).

In the accompanying lab course (Praktikum), you will use Scala to implement your own program analyses, using the TIP system developed by Anders Møller at Aarhus University.