Dorian Lesbre

EN

Publications

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

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 ‐ Papier court
Matthieu Lemerre  et Dorian Lesbre 
NSAD 2024
Resumé

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.

Stages et expérience professionnelle

Stage de recherche : vérification de programmes concurrents à l'aide d'IRIS
Octobre 2022 — Mars 2023
Encadré par Lars Birkedal.
J'ai défini et étudier une notion de raffinement contextuel de programmes pour une machine à capabilités simple (Cerise). Le tout à été formalisé en Coq, en utilisant IRIS.
Stage de recherche : vérification de non-interférences des tâches dans un noyau d'OS
Mars — Août 2022
Encadré par Matthieu Lemerre.
Par interprétation abstraite sur des noyaux de systèmes d'exploitations, je cherche à montrer des propriétés de non-interference entre les tâches. Notamment que les données sont préservée et bien restituées lors d'interruptions systèmes.
Stage de recherche : conception d'un processeur sécurisé pour l'IoT
Février — Août 2021
Encadré par Carl Seger.
Avec l'équipe Céphalopode, conception d'un processeur pour internet des objets visant à permettre l'exécution efficace de languages fonctionnels (avec garbage collection automatisé) et supportant l'arithmétique sur des entiers de taille arbitraire en hardware.
Stage de recherche : conception et implémentation d'un bootloader sécurisé
Mars — Juillet 2020
Encadré par Patrice Hameau.
Conception et implementation d'un bootloader sécurisé (vérifiant l'intégrité de l'OS avant de la lancer et capable de le mettre à jour à partir de fournisseur authentifiés)
Stage de recherche : algorithmes de résolution efficace de systèmes linéaires
Juin — Août 2019
Encadré par Pascal Giorgi et Romain Lebreton.
Étude de la résolution de système d'équations linéaires à coefficients entiers ou polynomiaux, notamment d'algorithmes de résolution modulaire qui permettent de gagner en complexité lors de la résolution.

Enseignement

Chargé de TP de cours de système d'exploitation en 2ème année (niveau M1)
2023-2024 et 2024-2025
Interrogateur oral en mathématiques au niveau prépa MPSI
Septembre 2018 — Juin 2019

Parcours scolaire

Doctorat en Informatique
2023 —
École normale supérieure Paris - Licence et master d'informatique
2018 — 2023
2022-2023
4ème année - stages
2021-2022
Deuxième année de master MPRI
2020-2021
Césure - Licence de mathématiques
2019-2020
Première année de master d'informatique
2018-2019
Licence d'informatique avec mention très bien
Classe préparatoire MPSI - MPI
2016 — 2018
Réussi le concours d'entrée de l'ENS Ulm et de l'école polytechnique (voir certificat)
Lycée général scientifique spé maths
2014 — 2016
Collège lycée option internationale américaine (OIB)
2009 — 2014

Compétences informatiques

Avancées
Python, OCaml, C, C++, GNU Make, Linux, Django, Coq, Voss II.
Bonnes
LaTeX, beamer, HTML, CSS, LibreOffice, Windows, Git, Bash, SQL, GIMP, Inkscape, Verilog, Docker, CMake.
Basiques
Rust, Javascript, assembleur x86, Blender, Adobe Premiere et After Effects.

La page logiciels présente brièvement mes différents projets informatiques. La plupart sont également accesible sur github.

Langues

FR
Français
C2
UK
Anglais
C2
DE
Allemand
A2 - B1

Autres expériences et loisirs

Événementiel
Organisation du Gala de l'ENS pour 1000 personnes en 2019.
Organisation d'un voyage au ski d'une semaine pour 180 personnes en 2017.
Sport
Principalement des sports d'extérieur : athlétisme, randonnée, voile (permis côtier), escalade, ski.
Musique
Joue du saxophone depuis 2008, ancien membre de l'ernestophone, la fanfare de l'ENS.