# Qu’est-ce qu’un bug ?

**Le premier bug informatique a eu lieu en 1947.** A cette époque, Mme Hopper **s’attend à ce que l’ordinateur se comporte d’une certaine manière… et cela ne fonctionne pas !** Celle-ci est bien désappointée. Jusque là, l’ordinateur s’est comporté de manière toujours fiable et a toujours fait ce qu’on lui demandait. Après avoir retourné le problème dans tous les sens, et ne voyant pas d’issue, elle décide d’ouvrir le capot de la machine. Stupeur ! Dans les méandres des composants, un insecte, en anglais *bug*, s’est glissé et, frit par la tension électrique, a créé un court-circuit là où il ne fallait pas. Ce qui explique le comportement étrange de la machine.

<span style="text-decoration: underline;">[En réalité, **le mot était déjà utilisé avant cela**, mais l’anecdote est croustillante !](https://fr.wikipedia.org/wiki/Bug_(informatique))</span>

Le mot désigne ce qui deviendra le plus grand fléau de l’informatique : **une situation où ça devrait marcher, mais ça marche pas.** Il est par essence difficile de comprendre d’où vient un *bug*, car si on le savait, alors ça ne serait pas un *bug*. Une solution courante dans le milieu informatique est de jeter l’ordinateur par la fenêtre afin de nier le problème.

Un *bug* célèbre concerne un jeu vidéo bien connu : le premier pac-man. Dans celui-ci, il n’est pas possible d’atteindre le niveau 257, quand bien même vous seriez très fort. En effet, dans la mémoire, le numéro de niveau est stocké dans un octet, c’est-à-dire une suite de 8 chiffres binaires. Au premier niveau, l’octet est égal à 0000 0000. Lorsqu’on gagne le premier niveau, on augmente, à partir de la droite, le compteur : 0000 0001. Lorsque l’on gagne le deuxième niveau, il n’est pas possible d’augmenter le dernier bit de l’octet, celui à droite, car il est déjà égal à 1 et que nous sommes en binaire. À la place, on augmente le bit à sa gauche, et on remet celui-ci à zéro. Nous sommes alors à 0000 0010. Mais lorsque l’on est au niveau 256, l’octet est maintenant égal à 1111 1111. Or, lorsque que l’on gagne le niveau, c’est bel et bien le bit à gauche de l’octet qui sera augmenté. Or celui-ci est hors du score du niveau, et utilisé pour tout-à-fait autre chose… qui ne voudrait pas qu’il change ! Mais l’algorithme en a décidé autrement et fout le bazar dans le programme : le jeu *bugue*...