La vérification des programmes par interprétation abstraite
71
pages
Français
Documents
Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres
71
pages
Français
Documents
Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres
par interprétation abstraite
Patrick Cousot
École normale supérieure
Patrick.Cousot@ens.fr www.di.ens.fr/ cousot~
Équipe-projet INRIA Paris–Rocquencourt/CNRS/ENS « Abstraction »
Séminaire
Chaire d’innovation technologique Liliane Bettencourt
Collège de France, 22 février 2008
Pourquoi et comment le monde devient numérique, 22/2/2008 — 1 — P. Cousot1. Exemples classiques de bugs
Pourquoi et comment le monde devient numérique, 22/2/2008 — 2 — P. CousotExemples classiques de bugs
du calcul en entiers
Pourquoi et comment le monde devient numérique, 22/2/2008 — 3 — P. CousotLe programme factorielle (fact.c)
#include
int fact (intn){ fact(n)=2ˆ3ˆ´´´ˆn
int r, i;
r = 1;
for (i=2; i<=n; i++) {
r = r*i;
}
return r;
}
int main() { int n;
scanf("%d",&n); lire n (tapé au clavier)
printf("%d!=%d\n",n,fact(n)); écrire n ! = fact(n)
}
Pourquoi et comment le monde devient numérique, 22/2/2008 — 4 — P. Cousot(1)Compilation du programme factorielle (fact.c)
#include
%int fact (intn){
int r, i;
r = 1;
for (i=2; i<=n; i++) {
r = r*i;
}
return r;
}
int main() { int n;
scanf("%d",&n);
(1) Voir la leçon du 8 février 2008 et le sémi-printf("%d!=%d\n",n,fact(n));
naire de Xavier Leroy
}
Pourquoi et comment le monde devient numérique, 22/2/2008 — 4 — P. CousotExécutions du programme factorielle (fact.c)
#include
% ./fact.execint fact (intn){
3int r, i;
3! = 6r = 1;
% ./fact.execfor ...