Retour
Cours précédent
Cours suivant

Frama-c

C’est un analyseur statique de code C. Il permet la déclaration et la vérification formelle de contrats de fonction exprimé en ACSL (Ansi-C Specification Language) qu permet d’exprimer des phrases en logique de premier ordre.

RTE : permet d’ajouter automatiquement des assertions pour empecher les comportements indéterminés (erreur à l’exécution).
WP : applique l’algorithme Weakest Precondition à un contrat de fonction puis détermine sa validité avec un solveur SMT externe (Alt-ergo, Z3, Coq).

Contrat de fonctions

Un contrat de fonction contient :

La précondition est \(D\). Les postconditions sont \(V\) et les effets de bords.

Un contrat de fonction ne dit rien sur son comportement si elle est appelée hors de son domaine de définition.

Utilités pricipales :

pour ce cours on se concentrera essentiellement sur le deuxième point

Modèle de programmation

Etat de mémoire

On note \(Var\) la mémoire locale d’une fonction.
On note \(\mathbb{Z}\) la mémoire globale d’un programme.
On note \(M(x)\) la valeur de la variable \(x\).
\result contient la valeur de retour de la fonction.


Retour
Cours précédent
Cours suivant