News
Course EvaluationWritten on 17.01.24 (last change on 17.01.24) by Benjamin Kaminski Hi all, it's course evaluation season and here's a link to the course evaluation: https://qualis.uni-saarland.de/eva/?l=147096&p=cv8amb Please consider filling out the survey! The survey runs until January 31, so you best fill it right away : ) We rely on this feedback in order to optimize… Read more Hi all, it's course evaluation season and here's a link to the course evaluation: https://qualis.uni-saarland.de/eva/?l=147096&p=cv8amb Please consider filling out the survey! The survey runs until January 31, so you best fill it right away : ) We rely on this feedback in order to optimize our courses and provide you with a better study experience. Of course, if you have any feedback that you would like to discuss with any of us directly, please also feel free to do so.
Thanks for your time and all the best, Benjamin |
Project SelectionWritten on 16.11.23 by Jan Reineke Dear all, You can find the project topics at the bottom of the materials section. Each team should send their preferences by email to lverscht@cs.uni-saarland.de by the end of the day on Tuesday, November 21. In your email, state the composition of your team and list at least three projects… Read more Dear all, You can find the project topics at the bottom of the materials section. Each team should send their preferences by email to lverscht@cs.uni-saarland.de by the end of the day on Tuesday, November 21. In your email, state the composition of your team and list at least three projects in order of preference. Best regards, |
Course ProjectsWritten on 13.11.23 (last change on 14.11.23) by Jan Reineke Dear all, We will introduce possible course projects on Thursday at 10:00 am in room 401 in building E1 3. Please let me know if you cannot attend the meeting. Best regards, |
Oral Exams ScheduledWritten on 02.11.23 by Jan Reineke Dear all, We have scheduled the oral exams. You can find the schedule here: https://cms.sic.saarland/pa23/2/Oral_Exams The exams will take place in room 410 in E1 3. Please be there on time. To avoid disturbing earlier exams, wait until we ask you to come in. |
Oral ExamsWritten on 26.10.23 by Jan Reineke Dear all, We would like to conduct the oral exams for the course on November 9. Please indicate your availability via the following link by Monday, October 30: https://terminplaner6.dfn.de/p/bd77e0443f203b7233892a5761c72f66-448639 If none of the options are possible for you, please get in… Read more Dear all, We would like to conduct the oral exams for the course on November 9. Please indicate your availability via the following link by Monday, October 30: https://terminplaner6.dfn.de/p/bd77e0443f203b7233892a5761c72f66-448639 If none of the options are possible for you, please get in touch. Best regards, |
Program Analysis
Course Organization
The course consists of two parts:
- Lectures and tutorials conducted in a block fashion from October 4 to October 20, i.e., before the start of the regular lecture period.
- Group projects carried out from early November to end of January.
The block lecture in October consists of two time slots per day, from 10:00 to 12:00 and from 14:00 to 16:00. The lectures will be held in room 024 (MPI-INF), except for the very first lecture on October 4 and the first lecture on October 18, which will take place in Hörsaal 1 (E1 3). The detailed schedule can be found here.
The first lecture takes place on October 4 at 10:00 in Hörsaal 1 (E1 3).
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:
- Basics on Fixed Point Theory
- Hoare Logic and Predicate Transformer Semantics
- Abstract Interpretation
- Data-flow Analysis and Interprocedural Analysis
- SMT solvers, Symbolic Execution, and Symbolic Abstraction
- Information Flow Analysis and Side-channel Analysis
- Quantitative Program Analysis (e.g. expected execution times of probabilistic programs)
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 programming experience would be valuable for the projects.