Article de reference

Programmation prédictive

La programmation prédictive est le nom originel d'une méthode formelle de spécification et d'amélioration de programmes , plus récemment appelée Théorie pratique de la programma...

La programmation prédictive est le nom originel d'une méthode formelle de spécification et d'amélioration de programmes , plus récemment appelée Théorie pratique de la programmation, inventée par Eric Hehner . L'idée centrale est que chaque spécification est une expression binaire ( booléenne ) vraie pour les comportements acceptables de l'ordinateur et fausse pour les comportements inacceptables. Il s'ensuit que l'amélioration se réduit à une simple implication . C'est la méthode formelle la plus simple et la plus générale, applicable aux programmes séquentiels, parallèles, autonomes, communicants, termino-terminants, non termino-terminants, en temps naturel, en temps réel, déterministes et probabilistes , et prenant en compte les contraintes de temps et d'espace.

Les commandes d'un langage de programmation sont considérées comme un cas particulier de spécification — les spécifications compilables. Par exemple, si les variables du programme sont

Les démonstrations par boucles sont grandement simplifiées. Par exemple, si

alors quefaireod

affine ou met en œuvre la spécification

sialorssinonfi ⇒ (

Le temps d'exécution (borne supérieure, borne inférieure, temps exact) peut être démontré de la même manière, simplement en introduisant une variable de temps. Pour démontrer la terminaison, il faut prouver que le temps d'exécution est fini. Pour démontrer la non-terminaison, il faut prouver que le temps d'exécution est infini. Par exemple, si la variable de temps estwhile précédente prend du temps

sialorssinonfi ⇒ (