Foundations of (scalable) static analyses for large(r) software systems; in particular its about
- AST, SSA,
- Object-/ Field-/ Context-/ Flow-/ Path Sensitivity
- Inter-procedural analyses, etc.
- stack based intermediate representations
- register based intermediate representations
Concrete static analyses and algorithms:
- Call graph algorithms for libraries and applications
- Inter procedural data- and control-flow analyses
- Points-to analyses
- Escape analyses
- General software quality analyses
- Security Vulnerabilities Detection
- Dead Paths/Computations
- Next generation software development tools
The lecture is targeted towards Master students with a very high degree of interest in reading, analyzing and also writing code. Basic knowledge in compiler construction is helpful. Deep knowledge of object-oriented programming concepts and in particular of object-oriented programming in Java is required. Interest in learning new programming languages (in particular Scala) is required.