Analyse statique de programmes manipulant des structures de données avec partage

par Huisong Li

Projet de thèse en Informatique

Sous la direction de Xavier Rival.

Thèses en préparation à Paris Sciences et Lettres , dans le cadre de École doctorale de Sciences mathématiques de Paris Centre (Paris) , en partenariat avec LIENS - Laboratoire d'informatique de l'École normale supérieure (laboratoire) et de École normale supérieure (Paris ; 1985-....) (établissement de préparation de la thèse) depuis le 01-10-2014 .


  • Résumé

    La Shape Analysis vise à vérifier des propriété de sûreté mémoire, de préservation d'invariants de structure et d'autres propriétés sur la mémoire de programmes manipulant des structures de données dynamiques. Récemment, de nombreux travaux de Shape Analysis basés sur la logique de séparation ont été réalisés. Cette approche permet de décrire des structures de données telles que les listes et les arbres via des prédicats définis inductivement. Cependant, cette approche souffre des problèmes suivants : • les structures de données avec du partage non borné, telles que les graphes, sont difficiles à décrire inductivement et ne se prêtent pas à ce type de raisonnement; • déplier les prédicats portant sur la mémoire (tel que les prédicats caractérisant une structure de liste ou d'arbre) génère un nombre important de disjonctions, ce qui nuit tant à l'efficacité qu'à la précision de l'analyse. Mes travaux de thèse portent sur la mise au point de techniques permettant 1) de raisonner sur des structures de données avec partage non borné en utilisant des techniques basées sur la logique de séparation et 2) d'identifier aisément des critères sémantiques calculables pour guider la production de disjonctions d'états mémoire abstraits.

  • Titre traduit

    Shape analysis for data structures with sharing


  • Résumé

    Shape analysis aims to verify memory safety, structure preservation and other memory properties of programs dealing with dynamic data structures. Recently many shape analysis works are based on separation logic, where, unbounded data structures, like lists and trees, are described by summarized and inductively defined predicates. However, this framework leads to two problems of the following: • data structures with unbounded sharing, such as graphs, are challenging to describe and reason about. • unfolding summarized memory predicates generates many disjuncts, which is costly to keep and merging all of them will possibly lose necessary precision. Therefore, my thesis topic is about finding a way allowing us to reason about unbounded sharing based on separation logic and identify easily computable semantic criteria for disjunct partition of abstract memory states.