previous up next contents
Précédent : Preuve mécanique de Remonter : Analyse statique Suivant : Inférence de types

Preuve de propriétés de programmes impératifs

Participants : Pascal Fradet,Ronan Gaugne, Daniel Le Métayer

Un autre exemple d'application de techniques d'analyse statique à la vérification de propriétés de correction concerne la certification d'applications par rapport à des contraintes de confidentialité. Nous avons défini formellement une notion de confidentialité en terme de flux d'informations en partant de la sémantique opérationnelle d'un langage impératif simple. Nous avons proposé une axiomatisation des propriétés de sécurité et nous en avons dérivé un algorithme d'inférence correct et complet [7]. Cet algorithme conduit à un analyseur capable de prouver mécaniquement des propriétés sur les flux d'informations. Nous poursuivons cet effort, notamment en vue de traiter un langage plus riche incluant des manipulations explicites de pointeurs.

Nous avons proposé à cet effet une axiomatisation des propriétés d'alias (partage en mémoire) et de relations de connectivité [16]. L'analyseur dérivé pourra être combiné au vérificateur de confidentialité puisqu'il est décrit dans le même cadre formel. L'analyse d'alias proposée permet aussi de vérifier le bon usage des pointeurs dans un programme (absence de déréférence de pointeurs pendants), et elle servira de base à un outil d'aide à la mise au point des programmes. Nos efforts portent maintenant sur l'amélioration de l'efficacité des analyseurs dérivés et sur leur modularité.


previous up next contents
Précédent : Preuve mécanique de Remonter : Analyse statique Suivant : Inférence de types