Stéphane Ducasse : Test differentiel guidé pour tester des compilateurs tardifs (JIT)


jeudi 02 juin 2022 - Séminaires

Heure et date : Le 02 juin 2022 à 12h30
Lieu : Salle PK-5115 & réunion Zoom
Conférencier : Stéphane Ducasse
Titre : Test differentiel guidé pour tester des compilateurs tardifs (JIT)

Résumé : Les implémentations de langages modernes utilisant des machines virtuelles comportent divers moteurs d’exécution tels que des interpréteurs de code-octet et des traducteurs dynamiques de code-machine, c’est-à-dire des compilateurs JIT. La validation de ces moteurs exige non seulement de valider chacun d’entre eux de manière isolée, mais aussi de s’assurer qu’ils sont fonctionnellement équivalents. Notre solution utilise la méta-interprétation concolique : elle applique le test concolique à un interpréteur de code d’octet pour explorer tous les chemins possibles de l’interpréteur d’exécution et obtenir une liste de valeurs concrètes qui explorent ces chemins. Nous utilisons ensuite ces valeurs pour appliquer le test différentiel sur l’interpréteur VM et le compilateur JIT.  Cette solution est basée sur deux idées : (1) l’interpréteur et le compilateur mettent en œuvre la même sémantique du langage et (2) les interpréteurs sont de simples spécifications exécutables de cette sémantique et donc des cibles prometteuses pour la (méta)interprétation à l’aide du test concolique.

Bio : Je suis un directeur de recherche Inria. Je dirige l’équipe RMoD http://rmod.lille.inria.fr. De 2011 à 2014, j’ai été délégué scientifique du laboratoire Inria nord Europe (300 chercheurs, 17 équipes). Je suis expert en conception et réingénierie du langage. J’ai travaillé sur les traits. Les traits ont été introduits dans Pharo, Perl, PHP et sous une variante dans Scala, Groovy et Fortress.  Je suis expert en qualité des logiciels, compréhension des programmes, visualisation des programmes, réingénierie et métamodélisation. Je suis l’un des développeurs de Moose, une plateforme d’analyse logicielle open-source http://www.moosetechnology.org/.  J’ai créé Synectique, une société qui construit des outils dédiés aux analyses logicielles avancées. Je suis l’un des leaders de Pharo http://www.pharo.org/, un langage orienté objet, dynamique et réfléchi, qui supporte la programmation en temps réel.  Depuis 2013, j’ai construit le consortium industriel Pharo http://consortium.pharo.org. Je travaille régulièrement avec des entreprises (Thales, Wordline, Siemens, Berger-Levrault, Arolla,…) sur des problèmes d’évolution de logiciels. J’ai écrit quelques centaines d’articles et plusieurs livres ; selon Google Scholar, mon h-index est de 60 avec 15K citations.