This page describes the organization of the course and gives access to the course slides and material.
The course is presented (in French) on the M2-6 page on the MPRI site.
The course takes place on Monday, from 8:45 to 11:45, at University Paris 7, Sophie Germain Building, room 1002.
The course is organized in two periods of 8 courses each.
The first period will begin on 20 September 2021. The first period will end with a written exam on the 29 November 2021.
The second period will end with an oral exam. The oral exam consists in the presentation of a research article; the list of articles will be provided a few weeks before the exam.
You will find here the provisional course plan. The dates may change, so, please consult this page regularly for updates.
The course slides will be put on-line before or shortly after each course.
Reading materials are provided below, including introductory articles and course notes for the first part of the course.
The courses are accompanied with a suggestion of homework assignments. They consist in course-specific reading assignments, exercises to complete, or experiments to perform. Assignments are not evaluated by the teachers and give no credit: they are for self-evaluation only, to prepare you for the exams. Although optional, it is highly recommended that you complete these assignments.
To complete the theoretical study with implementation, we propose a project (in French).
It is completely optional and not evaluated by the teachers.
First Period
Topics: Course organization; Introduction; Order theory.
Slides:
Topics: Semantics and properties.
Slides:
Assignments:
Topics: Non-relational numeric abstract domains.
Slides:
Assignments:
Topics: Relational numeric abstract domains.
Slides:
Assignments:
Topics: Specific numerical domains.
Slides:
Topics: Thread-modular static analysis of concurrent programs.
Slides:
Assignments:
Topics: Abstract interpretation of mobile systems.
Slides:
Mid-term exam: on 29 November 2021.
The 3h-long written exam takes place at the usual course schedule, from 8:45 to 11:45, in the usual room.
(see also the former written exams)
Second Period
Topics: Partitioning abstract domains.
Late announcement: This lesson will be given online, by streaming, at the usual time, on Gotomeeting. Registered students have been sent a Gotomeeting link by email (contact us if you did not receive the link).
Slides:
Topics: Memory abstraction.
This lesson will be given online, by streaming, at the usual time, on Gotomeeting. Registered students have been sent a Gotomeeting link by email (contact us if you did not receive the link).
Slides:
Topics: Shape analysis abstractions.
Slides:
Topics: Termination analysis.
Slides:
Topics: Static analysis of Python programs with C libraries (by Raphaël Monat).
Topics: Analysis of liveness and CTL properties (by Caterina Urban).
Slides:
Topics: Static analysis for data science.
Slides:
Additional resources:
Topics: Formal verification of machine learning.
Slides:
Topics: Security analysis
Slides:
Oral exam: TBA.
The following articles give an taste of the contents and the goal of the course:
Course notes are available for the beginning of the course. They cover mainly lessons 1 to 4.
The contents of the later lessons is generally covered in articles. Each course will thus provide a specific bibliography in the course slides, for reference (reading is them is not mandatory).
An example programming project (in French) is available, with associated source code. The goal is to extend a small analyzer for a toy language written in OCaml.
This completely optional project will not be evaluated by the teachers and will not give credit. It is here for students wishing to practice the implementation of some principles seen during the course.
The project is based on a course given at École normle supérieure and at Sorbonne Université.
We will provide here a list of M2 internship proposals related to the course, either in the Abstraction team at the ENS or the APR team at Sorbonne Université. The list will be updated regularly. Feel free to contact directly the teachers for more information and more proposals.