index

Course Overview

Foundations of (scalable) static analyses for large(r) software systems; in particular its about

Basic Terminology:

  • BAST, SSA,
  • Object-/ Field-/ Context-/ Flow-/ Path Sensititvity
  • (I)CFG
  • Inter-procedural analyses, etc.
  • stack based intermediate representations (JVM Bytecode)
  • register based intermediate representations (LLVM IR)
  • program transformations and native code analyses using LLVM

Concrete static analyses and algorithms:

  • Call graph algorithms for libraries and applications
  • Inter procedural data- and control-flow analyses
  • IDE/IFDS
  • Points-to analyses
  • Escape analyses

Applications:

  • General software quality analyses
  • Capability Analysis
  • Security Vulnerabilities Detection
  • Dead Paths/Computations
  • Next generation software development tools

Requirements

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.

Course Information

TUCaN-ID

20-00-0949-iv

Course Type

P2 / 3CPs

Advisors

Dr.-Ing. Michael Eichberg

Sign-up

Please sign up in TuCan.

Language

English

Slides

https://github.com/stg-tud/apsa