CHARLES ANTONY RICHARD HOARE
Charles Anthony Richard Hoare, laur´
eat du prestigieux Prix
Turing (1980), a eu de nombreuses contributions remarquables,
comme la logique de Hoare mais aussi le Quicksort, un
compilateur Algol 60 ou la d´
efinition de CSP, un mod`
ele pour
la programmation concurrente.
TRIPLETS DE HOARE
La logique de Hoare-Floyd se base sur la notion de triplet de
Hoare, de la forme
{P}A{Q}
Pest la pr´
econdition,
Qla postcondition,
Aune expression du langage de programmation.
SP´
ECIFICATION
{P}A{Q}
Pet Qsont des assertions, i.e. des formules du langage de
sp´
ecification d´
ecrivant les valeurs des variables, l’´
etat de la
m´
emoire ou du syst`
eme.
En toute rigueur, le langage de sp´
ecification devrait ˆ
etre un
langage math´
ematique comme la logique des pr´
edicats, mais
dans un objectif de documentation plus que de preuve de
programmes, le langage de sp´
ecification peut ˆ
etre le langage
naturel (en ´
evitant les ambiguit´
es!).
INTERPR´
ETATION
L’interpr´
etation de {P}A{Q}est:
si le syst`
eme v´
erifie {P}, on peut assurer qu’il v´
erifie {Q}apr`
es
l’ex´
ecution de A;
En fait, c’est un peu plus compliqu´
e que cela; en effet, il se peut
que l’ex´
ecution de Ane termine pas! On a donc deux
interpr´
etations possibles:
Isi {P}est v´
erifi´
ee, apr`
es l’ex´
ecution de A, si celle-ci termine,
on peut assurer {Q}; on parle alors de correction partielle.
Isi {P}est v´
erifi´
ee, la terminaison de Aest assur´
ee et apr`
es
son ex´
ecution, on peut assurer {Q}; on parle alors de
correction totale.