Effet de bord (informatique)

Effet de bord (informatique)
Page d'aide sur l'homonymie Pour les articles homonymes, voir Effet de bord.

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 vers un écran ou un fichier ou lire des données provenant d'autres fonctions à effet de bord. Les effets de bord rendent souvent le comportement des programmes plus difficile à comprendre et nuisent à la réutilisabilité des fonctions et procédures.

Note : un "semi" effet de bord consiste simplement pour une fonction à utiliser pour ses calculs, outre ses arguments qu'elle ne modifie pas (comme elle le peut toujours lorsqu'ils sont passés par référence), des variables globales, mais utilisées cependant qu'en lecture. Ce n'est pas à proprement parler un effet de bord [réf. nécessaire], et l'utilisation de variables globales non passées en argument permet la réduction lors de l'appel de fonctions des arguments aux seules variables changeantes entre les divers appels, donc souvent[réf. nécessaire] à une réduction importante du nombre des arguments. Cependant, par l'usage de bonnes sous-structures de structures de données globales complexes passées en arguments par référence, ou en faisant de ces fonctions des méthodes de classes, les variables globales non passées en argument devenant les attributs de classe, ce type de "semi" effet de bord peut être évité, restaurant par là l'idéal du comportement purement fonctionnel, qui maximise la réutilisabilité des fonctions.

La programmation impérative permet l'emploi des effets de bord dans le fonctionnement de ses programmes. La programmation fonctionnelle cherche à minimiser les effets de bord et les isole souvent dans des structures prévues notamment pour cela : les monades.

Dans la conception des processeurs, les instructions à effet de bord sont celles qui modifient l'état interne du processeur sans le déclarer explicitement. Par exemple une instruction d'addition peut ou non modifier des variables de conditions (retenue, zéro, débordement...). Cela peut poser un problème lors de la conception d'un processeur s'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, des circuits additionnels détectent les effets de bord et invalident le pipeline si l'instruction suivante dans celui-ci dépend des valeurs affectées.

Transparence 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 <iostream>
 
 int a;
 
 void f()
 {
   a = 2;
 }
 
 int main ()
 {
   using namespace std;
 
   a = 1;
   cout << a << endl;
   f();
   cout << a << endl;
 }

Ce programme imprime sur la sortie standard :

1
2

L'effet de bord de la fonction f est de modifier la valeur de la variable globale a.


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Effet de bord (informatique) de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Effet De Bord (Informatique) — Pour les articles homonymes, voir Effet de bord. 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… …   Wikipédia en Français

  • Effet De Bord — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Mathématique, physique Il s agit de la modification d une propriété lors de l approche (au propre ou au figuré) d une valeur. Bien souvent, l étude des… …   Wikipédia en Français

  • effet de bord — ● loc. m. ►EXEC Modification indirecte de la valeur d une variable. L étymologie de effet de bord: c est une traduction mot à mot de l expression anglaise side effect qui signifie en bon français effet secondaire (comme les effets secondaires d… …   Dictionnaire d'informatique francophone

  • Effet de bord — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Mathématique, physique Il s agit de la modification d une propriété lors de l approche (au propre ou au figuré) d une valeur. Bien souvent, l étude des… …   Wikipédia en Français

  • Effet secondaire (informatique) — Effet de bord (informatique) Pour les articles homonymes, voir Effet de bord. 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… …   Wikipédia en Français

  • effet secondaire — ● loc. m. ►EXEC Syn. de effet de bord. Certains estiment que cette expression ci est meilleure que l autre (signalé par Olivier Vasseur) …   Dictionnaire d'informatique francophone

  • Effet Secondaire — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. En pharmacologie, un effet secondaire ou effet latéral est un effet survenant un plus de l effet principal désiré lors de la prise d un traitement… …   Wikipédia en Français

  • Effet latéral — Effet secondaire Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. En pharmacologie, un effet secondaire ou effet latéral est un effet survenant un plus de l effet principal désiré lors de la prise d un… …   Wikipédia en Français

  • Effet secondaire — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. En pharmacologie, un effet secondaire ou effet latéral est un effet survenant en plus de l effet principal désiré lors de la prise d un traitement… …   Wikipédia en Français

  • Boucle (informatique) — Structure de contrôle En programmation impérative, une structure de contrôle est une commande qui contrôle l ordre dans lequel les différentes instructions d un algorithme ou d un programme informatique sont exécutées. On appelle aussi cet… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”