Un algorithme ou une demonstration constructive fait abstraction des environnements particuliers dans lequel un eventuel programme déduit devrait s'executer. Par exemple lorsque dans un programme vous ecrivez dans une variable, si l'environnement sous jacent n'est pas assez "robuste" et bien sécurisé, quelqu'un d'autre peut intentionnellement ou non modifier la valeur de cette variable, faussant ainsi le resultat votre programme, du point de vue de l'utilisateur c'est un BUG. Si vous êtes au courant de certainne insuffisance en terme de sécurité de la plateforme sous jacente dans laquelle s'éxecutera votre programme, vous allez ecrire votre programme en y ajoutant le code de sécurité. Un algorithme en général fait abstraction de ces conditions spécifiques qu'on peut rencontrer dans un environnement informatique donné.Envoyé par DrTopos
L'algorithme "mathématique" est correct, lorsqu'on se limite à l'analyse. Au moment de la conception, et souvent même après le deployement du programme , on peut ajouter du code "système" à notre programme, pour résoudre les insuffisances, ou les particularités spécifiées ou non de l'environnement sous jacent.
En fait prouver qu'un programme s'execute sans BUG, implique la spécification précise de l'environnement sous jacent, ce qui n'est pas facile ( je dirais même impossible). Par exemple l'IDE Jbuilder 2005 ne s'execute pas bien avec certainne marque de carte graphique. Et c'était presque impossible pour les developpeurs de JBuilder de prévoir que certainne marque de carte graphique avaient "des ptits BUG" qui empêcheraient leur logiciel de fonctionner correctement, et leur permettant ainsi d'exclure ces cartes graphiques dans leur spécifications, ou bien de reécrire leur programme en tenant compte de cette situation.
Partager