News
Tutorial on Wednesday, January 4Written on 03.01.23 (last change on 03.01.23) by Shrey Sharma Tomorrow's tutorial will take place online. We will use the following Zoom link: https://cs-uni-saarland-de.zoom.us/j/85330913094?pwd=RnoyeXRmK1Y3eDRUVGhaMmIxeUR4UT09 |
Lecture on Monday, January 2Written on 01.01.23 by Jan Reineke Tomorrow's lecture will take place online. We will use the following Zoom link: |
Tutorial on Wednesday, December 21Written on 21.12.22 (last change on 21.12.22) by Shrey Sharma Tomorrow's tutorial will take place online. We will use the following Zoom link: https://cs-uni-saarland-de.zoom.us/j/89172555017?pwd=STFaOXc3TUJITEROclB4RkU2ZXlKUT09 |
Lecture on Monday, December 19Written on 18.12.22 by Jan Reineke Tomorrow's lecture will take place online. We will use the following Zoom link: https://cs-uni-saarland-de.zoom.us/j/89268790112?pwd=N1hqc3dKUzNoOUdwWStzUGo3OHhOQT09 |
Exercise 2.3 - Deadline ExtendedWritten on 14.11.22 by Shrey Sharma Dear all, 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. Regards, Shrey Sharma |
Lecture on Wednesday, November 2Written on 31.10.22 by Shrey Sharma Dear all, 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, Shrey Sharma |
Program Analysis
Introduction
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.
Prerequisites
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.
Exam
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.