Dynamic Program Analysis
Dynamic program analysis (DPA) is important for the analysis of computer programs, consisting in analyzing the properties of an application while it is executing. DPA allows researchers and analysts to observe and study numerous attributes of software systems. Efficient and well-designed DPAs are often key to locate and remove critical negative aspects of software, such as performance bottlenecks, bugs, or security threats. This course teaches concepts of DPA and profiling techniques for identifying negative runtime properties of software. These concepts are explained in the context of the Java programming language and the Java Virtual Machine.
- Understand the principles of dynamic program analysis and instrumentation in the context of Java and the Java Virtual Machine.
- Design and implement dynamic analyses with DiSL, a domain-specific language for Java bytecode instrumentation.
Lectures, tutorials, and exercises on the course topics.
To receive the ECTS for this course, the students must attend at least 50% of the lecture hours and submit a correct solution for a given DPA project. The submission of the project will be possible up to one month after the end of the course.