Due to technical issues with the gitlab server, we are extending the deadline for Exercise 2.3 to 10:00 am on Wednesday, November 16, 2022. The deadline for the other problems in the assignment sheet is still November 14, 2022, before the... Read more
Due to technical issues with the gitlab server, we are extending the deadline for Exercise 2.3 to 10:00 am on Wednesday, November 16, 2022. The deadline for the other problems in the assignment sheet is still November 14, 2022, before the lecture.
We will use the tutorial slot this Wednesday for a lecture. It will take place in Seminar Room 014 in building E1 3.
This will cover the material necessary to solve Assignment 1, which will be due next Monday.
See you then,
Program analysis deals with automatic analysis of programs with regards to certain properties. Depending on the application, these properties could be related to safety, security, or correctness of the program. The analysis results are used for different purposes by different applications. Some such uses are:
- proving the absence of runtime errors, as is e.g. done by Astree
- statically analyzing the worst-case execution time (WCET) of the program
- checking for hardware side-channel vulnerabities such as Spectre
- guiding program transformations in compilers, e.g. for high performance computing
This course provides an overview of the different techniques used in the field, the concepts guiding them, and their applications. Topics covered in the course include but are not limited to:
- Abstract Interpretation
- Data-flow Analysis and Interprocedural Analysis
- SMT solvers, Symbolic Execution, and Symbolic Abstraction
- Information Flow Analysis and Side-channel Analysis
Time and Place
The lectures and tutorials take place on Mondays from 10:00 - 12:00 (mostly lectures) and Wednesdays from 14:00 - 16:00 (mostly tutorials). The lectures will be held in Hörsaal HS 003 in building E1 3.
The first lecture will take place on October 31, 2022.
This course is open to advanced bachelor's students as well as to master's students.
While there are no specific course prerequisites for this advanced course, a solid background in discrete mathematics is highly recommended, as provided by undergraduate math courses in our bachelor's program. In addition, some C++ programming experience would be valuable for the practical assignments.
The "end of term" exam will take place after the end of the lecture period. A re-exam will be offered on demand at the end of the semester.
To be admitted to the exam, at least 50% of the points in the assignments are required.