previous up next top index
Précédent : Analyse statique Remonter : Analyse statique Suivant : Analyse de programmes Prolog


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

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

L'utilisation incorrecte de pointeurs est une des sources d'erreurs les plus répandues dans les langages impératifs. Par conséquent, tout vérificateur de code capable de détecter ce type d'erreurs à la compilation est le bienvenu. Nous avons proposé une analyse statique de programmes pour la détection d'accès incorrects à la mémoire (déréférences de pointeurs invalides) [12]. Un pointeur peut être invalide parce qu'il n'a pas été initialisé ou parce qu'il désigne une cellule de la mémoire qui a été désallouée. D'un point de vue pratique, notre analyseur se distingue des tentatives précédentes par son traitement précis des structures de données récursives qui sont construites dynamiquement. D'un point de vue formel, l'analyseur repose sur une sémantique opérationnelle structurelle du langage, dont nous dérivons une axiomatisation des propriétés de partage. L'analyseur est complètement décrit [25] ; nos efforts portent maintenant sur l'amélioration de son efficacité et de son ergonomie. Nous étudions notamment son intégration dans un système interactif permettant à l'utilisateur d'introduire des hypothèses simplificatrices.