Algorithmes certifiés pour la simplification syntaxique de programmes

par Jean-christophe LÉChenet

Projet de thèse en Informatique

Sous la direction de Pascale Le gall et de Nikolay Kosmatov.

Thèses en préparation à Paris Saclay , dans le cadre de Interfaces : approches interdisciplinaires, fondements, applications et innovation , en partenariat avec Mathématiques et Informatique pour la Complexité et les Systèmes - EA 4037 (laboratoire) et de CentraleSupélec (établissement de préparation de la thèse) depuis le 29-01-2015 .


  • Résumé

    Le slicing est une technique permettant d'extraire, à partir d'un programme, un programme plus simple contenant l'ensemble des instructions pouvant impacter une ou plusieurs instructions données. Ces programmes simplifiés obtenus par le slicing sont appelés les slices. Les méthodes d'analyse de code permettent d'établir les propriétés d'un programme. Ces méthodes sont souvent coûteuses, et leur complexité augmente rapidement avec la taille du code. Il serait donc souhaitable d'appliquer ces techniques sur des slices plutôt que sur le programme initial, mais cela nécessite de pouvoir justifier théoriquement l'interprétation des résultats obtenus sur les slices. Apparus récemment, les réseaux de capteurs sont utilisés aujourd'hui dans de nombreux domaines (le transport, la défense, l'habitat, l'automobile, etc.) et fournissent un moyen efficace de récolter et de transférer des données sans installer un réseau de dispositifs filaires, ce qui serait souvent beaucoup plus coûteux, voire impossible. Cette thèse vise à développer une méthode formellement vérifiée de slicing de programme, à l'implémenter dans le cadre de la plate-forme d'analyse de code C, Frama-C, développée par le Laboratoire Sûreté des Logiciels du CEA LIST, et à l'appliquer à la vérification des protocoles de réseaux de capteurs.

  • Titre traduit

    Certified algorithms for program slicing


  • Résumé

    Program slicing allows to extract, from a program, a simpler program containing the set of statements that can impact one or multiple statements. The simpler programs produced by program slicing are called slices. Program analysis techniques focus on describing the properties of a program. This techniques are costly, and their complexity increases with the size of the program. Therefore, it would be interesting to apply these techniques on slices rather than the initial program, but it requires theoretical foundations to interpret the results obtained on the slices. Appeared recently, wireless sensor networks are used in various domains (transport, defense, building, automobile, etc.) and provide en efficient means to collect and transfer data without installing a network of wired devices, that would be much more costly if even possible. This Ph.D. aims at developing a formally verified technique of program slicing, implementing it in the context of the Frama-C framework, developed at the Software Security Lab of the CEA LIST, and applying it to verification of protocols of wireless sensor networks.