Fraction : properties analysis by constraint computation
Fraction : analyseur de propriétés par des techniques de résolution de contraintes
Résumé
This paper describes the tool Fraction which use constraint computation for properties verification.
Constraints have already been used for properties validation, however our approach try to translate complete imperative programs into constraint systems.
Thus, we are using some classical algorithms of constraints computation to validate initial properties. Firstly, this translation tried to find the functionnal behavior of programs, secondely the functionnal behavior is translate into constraint systems.
A prototype of the tool have been carry out using Ocaml language and based on a compiler scheme. The definition of a modular constraints satisfaction tool allows Fraction to be parametrized by several constraints domains.
Ce papier décrit Fraction, un outil de vérification de propriétés de programme par utilisation de contraintes. L'utilisation de techniques liées aux contraintes pour vérifier des propriétés n'est pas véritablement nouvelle.
L'originalité de l'approche exposée est d'avoir défini une traduction d'un langage de style impératif en une série de systèmes de contraintes. Ce sont les algorithmes de résolution de contraintes qui permettent de valider ou non les propriétés recherchées. Cette traduction passe par une étape intermédiaire où l'on retrouve l'aspect fonctionnel des programmes.
L'utilisation du langage Ocaml a permis de réaliser facilement un prototype de la méthode dont l'architecture rappelle celle d'un compilateur. La définition d'un solveur de contraintes modulaire rend l'outil paramétrable par rapport à des modules de résolution de contraintes sur des domaines différents (les entiers et les booléens par exemple).
Origine : Fichiers produits par l'(les) auteur(s)