Analyse statique de programmes concurrents avec variables numériques - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2018

Static analysis of concurrent programs with numerical variables

Analyse statique de programmes concurrents avec variables numériques

Résumé

Verifying distributed systems is a difficult problem on both theoretical and practice levels, in particular when systems are capable of local numerical computations. The goal of this thesis is to provide a formal verification method of such systems. We present a general model, based on abstract interpretation, allowing the construction of static analyses for systems of communicating processes. Our methodology is inspired by Regular Model Checking where the set of program states are represented as lattice automata and the program semantics are encoded using rewriting systems applied on the language recognized by the automata. This model offers the possiblity of expressing communications between processes as well as dynamic creation/destruction of process. Using the abstract interpretation methodology, we are able to provide a sound over-approximation of the reachability set of programs allowing us to verify numerical safety properties. We implemented this method allowing us to automatically analyse programs that use the distributed computation library MPI/C.
La vérification de systèmes distribués est un problème complexe pour de nombreuses raisons tant théoriques que pratiques, en particulier lorsque ces systèmes sont capables d'effectuer localement des calculs numériques. Le but de cette thèse est de proposer une méthode de vérification formelle de tels systèmes. Nous présentons un modèle général, basé sur l'interprétation abstraite, permettant de construire des analyses statiques pour des systèmes de processus communiquants. Notre méthodologie s'inspire du Regular Model Checking en représentant des ensembles d'états de programmes concurrents sous la forme d'automates de treillis et la sémantique de ces programmes comme la réécriture des langages reconnus par ces automates. Ce modèle nous permet notamment d'exprimer des communications entre processus et des créations/destructions dynamiques de processus. L'utilisation de l'interprétation abstraite nous permet d'obtenir une sur-approximation sûre de l'espace d'atteignabilité des programmes nous permettant ainsi de vérifier des propriétés de sûreté numériques. Nous avons implanté cette méthode permettant d'analyser automatiquement des programmes utilisant la bibliothèque logicielle de calculs distribués MPI/C.
Fichier principal
Vignette du fichier
BOTBOL_Vincent_these_2018.pdf (1.73 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)
Loading...

Dates et versions

tel-02613523 , version 1 (20-05-2020)

Identifiants

  • HAL Id : tel-02613523 , version 1

Citer

Vincent Botbol. Analyse statique de programmes concurrents avec variables numériques. Langage de programmation [cs.PL]. Sorbonne Université, 2018. Français. ⟨NNT : 2018SORUS390⟩. ⟨tel-02613523⟩
87 Consultations
153 Téléchargements

Partager

Gmail Facebook X LinkedIn More