Program analysis can be used to find or to show the absence of certain kinds of bad program behaviours, e.g. division by zero, null-pointer access, etc., in general fully automatically.
In this course, we will
- introduce the theoretical foundation of many static analysis techniques (data flow analysis, abstract interpretation)
- present the main types of dynamic techniques (fuzz testing, symbolic execution)
- discuss the tradeoffs in efficiency, accuracy, and soundness between the different techniques
- show applications of program analysis techniques in various application areas
- 4 CP
- WS 2018/19
- Maria Christakis, Eva Darulova, Jan Reineke
- Assistants: Numair Mansur
- Schedule: Tuesday 13:45 - 15:15
- Building G 26, room 111
The first class will take place on Tuesday, 23 October.
While there are no formal pre-requisites for the class, it is intended for advanced Bachelor or Master students. Previous classes on semantics, automated reasoning, verification or compiler construction are helpful, but not necessary.