Effet de bord (informatique) - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs est disponible ici.

En informatique, une fonction est dite à effet de bord si elle modifie un état autre que sa valeur de retour. Par exemple, une fonction peut modifier une variable statique ou globale, modifier un ou plusieurs de ses arguments, écrire des données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent...) vers un écran (Un moniteur est un périphérique de sortie usuel d'un ordinateur. C'est l'écran où s'affichent...) ou un fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un...) ou lire des données provenant d'autres fonctions à effet de bord. Les effets de bord rendent souvent le comportement des programmes plus difficiles à comprendre.

Effet de bord est un barbarisme né d'une traduction fautive de l'anglais side-effect. (Le mot side signifiant " côté " et non pas " bord ", une traduction littérale et correcte aurait donné " effet latéral " ; cependant, en français, on utilise plus fréquemment l'expression synonyme " effet secondaire ".)

La programmation impérative (En informatique, la programmation impérative est un paradigme de programmation qui décrit...) emploie des effets de bord dans le fonctionnement de ses programmes. La programmation fonctionnelle (La programmation fonctionnelle est un paradigme de programmation qui considère le calcul en...) cherche a minimiser les effets de bord et les isole souvent dans des structures prévue notamment pour cela : les monades.

Dans la conception des processeurs, les instructions à effet de bord sont celles qui modifient l'état interne (En France, ce nom désigne un médecin, un pharmacien ou un chirurgien-dentiste, à la...) du processeur (Le processeur, ou CPU (de l'anglais Central Processing Unit, « Unité centrale de...) sans le déclarer explicitement. Par exemple une instruction (Une instruction est une forme d'information communiquée qui est à la fois une commande et une...) d'addition (L'addition est une opération élémentaire, permettant notamment de décrire la...) peut ou non modifier des variables de conditions (retenue, zéro (Le chiffre zéro (de l’italien zero, dérivé de l’arabe sifr,...), débordement...). Cela peut poser un problème lors de la conception d'un processeur si il comporte un pipeline d'instructions et des instructions à effet de bord. Il faut prendre soin d'éviter ces aléas. Il est possible d´éviter cela en limitant le jeu d'instruction à des instructions sans effet de bord. Dans le pire des cas, de la circuiterie additionnelle détecte les effets de bord et invalide le pipeline si l'instruction suivante dans celui-ci dépend des valeurs affectées.

Transparence (Un matériau ou un objet est qualifié de transparent lorsqu'il se laisse traverser par la...) référentielle

Ne pas avoir d'effet de bord est nécessaire mais non suffisant pour la transparence référentielle. Celle-ci signifie qu'une expression (telle qu'un appel de fonction) peut être remplacée par sa valeur sans affecter le comportement du programme. Cela requiert que l'expression n'a pas d'effet de bord et qu'elle est une fonction pure, c’est-à-dire qu'elle retourne toujours la même valeur sur les mêmes entrées.

Exemple d'un programme utilisant un effet de bord en C++

#include 
int a;
void f()
{
a = 2;
}
int main (La main est l’organe préhensile effecteur situé à...) ()
{
a = 1;
cout << a << endl;
f();
cout << a << endl;
}

Ce programme affiche :

1
2

L'effet de bord de la fonction f est de modifier la valeur de la variable globale (En programmation informatique, une variable globale est une variable déclarée à...) a.

Page générée en 0.007 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise