Passer au contenu

La programmation sans bug

Dans 10 ans : L’instabilité des logiciels actuels est l’un des plus grands freins aux progrès de l’informatique. Pas étonnant que les chercheurs s’efforcent de trouver des algorithmes imperméables à tout plantage !

L’objectif : un logiciel 100 % fiable

Une erreur cachée dans les milliers de lignes de code d’un programme peut suffire à provoquer une catastrophe. Le 4 juin 1996, une défaillance du logiciel de contrôle du vol d’Ariane 5 avait contraint à faire exploser la fusée en plein ciel.Pour éradiquer l’erreur, les chercheurs mettent au point des outils de programmation qui tolèrent un bug et le corrigent automatiquement. Des théoriciens envisagent même de développer un langage informatique dont la syntaxe rendrait impossible l’existence de la moindre erreur.

Les applications : voiture automatique, avion sans pilote…

Vous conduisez votre voiture sur l’autoroute en lisant tranquillement votre journal. Inutile de tenir le volant : un pilote automatique surveille votre vitesse, le tracé de la route et la position des autres véhicules. L’expérience a déjà été tentée aux Etats-Unis par une équipe de l’université de Carnegie Mellon.Mais avant de laisser l’ordinateur de bord piloter seul une voiture ou un avion, mieux vaut être convaincu qu’il ne commettra jamais d’erreur d’appréciation, ou ne se bloquera pas sans prévenir. Cette exigence de fiabilité est cruciale pour le développement de nombreuses applications.Ainsi, au cours d’une opération chirurgicale à distance, le logiciel du bras robotisé qui tiendra le scalpel n’aura pas le droit d’interpréter une commande de travers ou de tomber en panne !

Les obstacles : on n’est pas sûr que ce soit possible !

En France, en Israël et aux Etats-Unis, des chercheurs ont mis au point des algorithmes capables d’assimiler un bug sans se bloquer ni générer d’erreur. C’est la méthode dite de l’autostabilisation. “Même si le logiciel rencontre une anomalie, il reviendra tout seul vers un état stable : l’erreur sera automatiquement éliminée”, explique Christophe Genolini, chercheur au Laboratoire de recherche informatique de l’université Paris-Sud à Orsay.Le principal terrain d’application est celui des réseaux, où l’erreur d’un ordinateur peut se propager et faire planter en cascade les machines qui y sont reliées. Prenez une imprimante partagée par plusieurs PC en réseau. Lorsqu’une impression est lancée par l’un d’eux, un message alerte les autres PC pour réclamer l’accès au périphérique. Si un bug entraîne un ordinateur à lancer une impression alors qu’un autre PC fait de même, une panne peut survenir.L’intérêt des algorithmes d’autostabilisation est qu’ils éliminent dans ce cas les messages en doublon. Toutefois, ces algorithmes ne sont actuellement exploitables que sur des réseaux arborant une structure particulière, en forme d’arbre ou d’anneau. Autrement dit, ils ne peuvent encore s’appliquer à votre réseau local domestique ou à celui de votre entreprise.L’alternative des industriels pour remédier à ce type de situation reste la présence d’une mémoire tampon au sein de l’imprimante, qui met les documents des différents PC en file d’attente. Cela réduit les risques de bug, mais ne les élimine pas totalement.D’ailleurs, certains chercheurs estiment que l’on continuera longtemps à corriger plutôt qu’à prévenir les défauts. “N’importe quel programmeur sait qu’il est impossible de concevoir un logiciel complexe sans aucun bug”, estime Andy Gordon, chercheur au laboratoire R&D de Microsoft.De fait, chercher et trouver la petite bête au sein des millions de lignes de code d’un programme comme Windows exige un travail de fourmi et un investissement de taille.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Didier Castelnau, Seymour Dinnematin et Betty Mamane