JOURNAULT Matthieu
Direction de recherche : Antoine MINÉ
Analyse statique modulaire précise par interprétation abstraite pour la preuve automatique de correction de programmes et pour l’inférence de contrats
Assurer le passage à l’échelle des analyseurs statiques définis par interprétation abstraite pose des difficultés. Une méthode classique d’accélération consiste en la découverte et la réutilisation de contrats satisfaits par certaines commandes du code source. Cette thèse s’intéresse à un sous-ensemble de C qui ne permet pas la récursivité, pour lequel on définit un analyseur modulaire capable d’inférer, de prouver et d'exploiter de tels contrats.
Notre analyse est défini au-dessus d’un analyseur C existant et est donc capable de manipuler des types unions, des types structures, des tableaux, des allocations de mémoire (statique et dynamique), des pointeurs, y compris l'arithmétique de pointeur et le transtypage, appels de fonction, des chaînes de caractères .... La représentation des chaînes de caractère est gérée par un nouveau domaine abstrait défini dans cette thèse.
Nous proposons de plus une technique paramétrique de transformation de la sémantique classique des domaines abstraits vers une sémantique d’ensembles hétérogènes. Cette technique ne maintient qu’un seul état abstrait numérique, par opposition au partitionnement.
Finalement, nous proposons un domaine abstrait capable de représenter des ensembles d’arbres dont les feuilles peuvent contenir des labels numériques. Cette abstraction est basée sur les langages réguliers (d'arbre), et délègue une partie de son abstraction à un domaine numérique sous-jacent.
Cette thèse s’étant déroulée au sein du projet Mopsa, nous donnons donc un aperçu de certains résultats obtenus par l’équipe pendant la thèse.
Soutenance : 21/11/2019
Membres du jury :
Mme. BLAZY Sandrine (Professeur, IRISA) [rapporteur]
M. KING Andy (Professeur, University of Kent) [rapporteur]
M. CHAILLOUX Emmanuel (Professeur, Sorbonne Université)
M. LE GALL Tristan (Chercheur, CEA LIST)
M. SOTIN Pascal (Maître de Conférences, IRIT)
M. MINÉ Antoine (Professeur, Sorbonne Université)
Publications 2016-2020
-
2020
- M. Jaume, M. Journault, M.‑J. Lesot, P. Manoury, I. Mounier : “Logique pour l’informatique”, (Ellipses), (ISBN: 9782340042612) (2020)
- M. Journault, P. Lafourcade, R. Poulain, M. More : “Une preuve pour le lycée de l’indécidabilité du problème de l’arrêt”, Didapro 8 – DidaSTIC L’informatique, objets d’enseignements – enjeux épistémologiques, didactique et de formation, Lille, France (2020)
- M. Journault, P. Lafourcade, M. More, R. Poulain, L. Robert : “How to Teach the Undecidability of Malware Detection Problem and Halting Problem”, WISE13: The 13th World Conference on Information Security Education, Maribor, Slovenia (2020)
-
2019
- M. Journault : “Precise and modular static analysis by abstract interpretation for the automatic proof of program soundness and contracts inference”, soutenance de thèse, soutenance 21/11/2019, direction de recherche Miné, Antoine (2019)
- M. Journault, A. Miné, A. Ouadjaout : “An abstract domain for trees with numeric relations”, ESOP 2019 - 28th European Symposium on Programming, vol. 11423, Lecture Notes in Computer Science, Prague, Czechia, pp. 724-751, (Springer) (2019)
- M. Journault, A. Miné, R. Monat, A. Ouadjaout : “Combinations of Reusable Abstract Domains for a Multilingual Static Analyzer”, Verified Software. Theories, Tools, and Experiments, vol. 12031, Lecture Notes in Computer Science, New York, United States, pp. 1-18, (Springer) (2019)
-
2018
- M. Journault, A. Miné, A. Ouadjaout : “Modular static analysis of string manipulations in C programs”, SAS 2018, Freiburg im Breisgau, Germany (2018)
- A. Miné, A. Ouadjaout, M. Journault : “Design of a Modular Platform for Static Analysis”, The Ninth Workshop on Tools for Automatic Program Analysis (TAPAS'18), Fribourg-en-Brisgau, Germany (2018)
-
2016
- M. Journault, A. Miné : “Static Analysis by Abstract Interpretation of the Functional Correctness of Matrix Manipulating Programs”, Static Analysis, 23rd International Symposium, SAS 2016, Edinburgh, UK, September 8-10, 2016, Proceedings, vol. 9837, Lecture Notes in Computer Science, Edimbourg, United Kingdom, pp. 257-277, (Springer) (2016)