Statische Analysen sind Werkzeuge die Informationen von Programmen
extrahieren ohne diese auszuführen. Statische Analysen haben vielseitige
Anwendungen in integrierten Entwicklungsumgebungen (IDEs), Compilern
und Continous Integration Servern. Zum Beispiel werden statische
Analysen in IDEs verwendet um Programmfehler und Sicherheitslücken zu
erkennen. Des Weiteren werden sie in Compilern zum Typechecking und für
Optimierungen verwendet.
Dieser Kurs gibt einen Überblick über die zugrundeliegende Konzepte
von statischen Analysen. Insbesondere diskutieren wir den Kompromiss
zwischen der Performanz, der Präzision, und der Korrektheit von
statischen Analysen. Des Weiteren werden Ihnen verschieden Sorten von
statischen Analysen vorgestellt, wie zum Beispiel Kontrollflussanalysen,
Datenflussanalysen, Zeigeranalysen, sowie Seiteneffekt- und
Unveränderlichkeitsanalysen. Abschließend lernen sie verschiedene
Analyseframeworks kennen, wie das monotone Framework, Big-Step Abstrakte
Interpreter und IFDS/IDE Frameworks.
In der begleitenden Übung wenden Sie die neuen Analysekonzepte
praktisch an, und erweitern oder entwicklen existierende Analysen.
- Dozent*in: Dominik Helm
- Dozent*in: Sven Keidel
- Dozent*in: Patrick Müller
- Dozent*in: Krishna Narasimhan
- Dozent*in: Tobias Peter Roth