Dorian Lesbre

FR

Publications

Compiling with Abstract Interpretation10.1145/3656392
Dorian Lesbre  and Matthieu Lemerre 
PLDI 2024
Artifact available Artifact evaluated reusable
Abstract

Rewriting and static analyses are mutually beneficial techniques: program transformations change the inten- sional aspects of the program, and can thus improve analysis precision, while some efficient transformations are enabled by specific knowledge of some program invariants. Despite the strong interaction between these techniques, they are usually considered distinct. In this paper, we demonstrate that we can turn abstract interpreters into compilers, using a simple free algebra over the standard signature of abstract domains. Functor domains correspond to compiler passes, for which soundness is translated to a proof of forward simulation, and completeness to backward simulation. We achieve translation to SSA using an abstract do- main with a non-standard SSA signature. Incorporating such an SSA translation to an abstract interpreter improves its precision; in particular we show that an SSA-based non-relational domain is always more precise than a standard non-relational domain for similar time and memory complexity. Moreover, such a domain allows recovering from precision losses that occur when analyzing low-level machine code instead of source code. These results help implement analyses or compilation passes where symbolic and semantic methods simultaneously refine each other, and improves precision when compared to doing the passes in sequence.

Labeled Union-Find for Constraint Factorization ‐ Short paper
Matthieu Lemerre  and Dorian Lesbre 
NSAD 2024
Abstract

In this work-in-progress paper, we present labeled union-find, an extension of the union-find data structure where edges are annotated with labels that form a group algebraic structure. This structure allows to very efficiently represent the transitive closure of many useful binary relations, such as two-variables per equality (TVPE) constraints of the form y = ax+b. We characterize the properties of labeled union-find when used to represent binary relations between variables. More specifically, we study the use of this domain in a static analysis; either to represent binary relations, or as a reduced product with non-relational abstract domains with constraint propagation; as well as the design of efficient algorithms for the join of labeled union-find structures. We believe that this structure could be used as a low-cost relational domain or decision procedure, and that it could make other relational domains more efficient by removing the need to track some variables.

Internships and professional experience

Research internship: verifying concurrent programs with IRIS
October 2022 — March 2023
Supervised by Lars Birkedal.
I defined and studied a notion of program contextual refinement for a simple capability machine (Cerise). This work was formalized in Coq using IRIS.
Research internship: verifying non-interference between tasks in an OS kernel
March — August 2022
Supervised by Matthieu Lemerre.
Using binary-level abstract interpretation on OS kernels, I'm trying to show non-interference properties on tasks. Namely that their data is preserved and restored through system interrupts..
Research internship: designing a secure processor for IoT
February — August 2021
Supervised by Carl Seger.
As part of the Cephalopode team, design a processor for the internet of thing (IoT) aiming to allow efficient execution of functional langages (with garbage collection) and supporting multi-precision arithmetic in hardware.
Research internship: design and implementation of a secure bootloaders
March — July 2020
Supervised by Patrice Hameau.
Designed and implemented a secure bootloader, checking the kernel's integrity and signature before booting it, and supporting kernel updates from verified sources.
Research internship: efficient algorithms to solve linear modular systems
June — August 2019
Supervised by Pascal Giorgi and Romain Lebreton.
Studied the resolution of linear systems with integer or polynomial coefficients, focusing on modular resolution algorithms which allow a small complexity gain in resolution.

Teaching

Teaching assistant for the 2nd year operating systems course (M1 level)
2023-2024 and 2024-2025
Oral mathematics interrogator in preparatory school
September 2018 — June 2019

Education

PhD in computer science
2023 —
École normale supérieure Paris - Bachelors and masters in computer science
2018 — 2023
2022-2023
4th year - internships
2021-2022
2nd year of master's degree MPRI
2020-2021
Off year - bachelors in mathematics
2019-2020
1rst year of masters' degree
2018-2019
Bachelors' degree in computer science with highest honors
Preparatory school MPSI - MPI
2016 — 2018
Passed the ENS's and Polytechnique's entrance exams (see certificate)
Scientific general french high school
2014 — 2016
High school with american international option (OIB)
2009 — 2014

Computer skills

Advanced
Python, OCaml, C, C++, GNU Make, Linux, Django, Coq, Voss II.
Good
LaTeX, beamer, HTML, CSS, LibreOffice, Windows, Git, Bash, SQL, GIMP, Inkscape, Verilog, Docker, CMake.
Basic
Rust, Javascript, x86 assembly, Blender, Adobe Premiere and After Effects.

The software page briefly presents my various programming projects. Most of them are also accessible on github.

Languages

FR
French
C2
UK
English
C2
DE
German
A2 - B1

Other accomplishments and hobbies

Event oganizer
Organizer of the ENS' gala in 2019 for 1000 participants.
Chief organizer for a 180 person school ski week in 2017.
Sport
Mostly exterior sports: jogging, hiking, sailing (has the french coastal license), rock climbing, skiing.
Music
Plays saxophone since 2008, former member of the ENS' brass band : l'ernestophone.